Merge remote-tracking branch 'origin/staging-next' into staging
This commit is contained in:
@@ -7010,7 +7010,10 @@
|
||||
github = "ethancedwards8";
|
||||
githubId = 60861925;
|
||||
name = "Ethan Carter Edwards";
|
||||
keys = [ { fingerprint = "0E69 0F46 3457 D812 3387 C978 F93D DAFA 26EF 2458"; } ];
|
||||
keys = [
|
||||
{ fingerprint = "0E69 0F46 3457 D812 3387 C978 F93D DAFA 26EF 2458"; }
|
||||
{ fingerprint = "2E51 F618 39D1 FA94 7A73 00C2 34C0 4305 D581 DBFE"; }
|
||||
];
|
||||
};
|
||||
ethercrow = {
|
||||
email = "ethercrow@gmail.com";
|
||||
@@ -25192,8 +25195,8 @@
|
||||
yuka = {
|
||||
email = "yuka@yuka.dev";
|
||||
matrix = "@yuka:yuka.dev";
|
||||
github = "yu-re-ka";
|
||||
githubId = 86169957;
|
||||
github = "yuyuyureka";
|
||||
githubId = 193895068;
|
||||
name = "Yureka";
|
||||
};
|
||||
Yumasi = {
|
||||
|
||||
@@ -936,15 +936,16 @@ The `sound` options have been largely removed, as they are unnecessary for most
|
||||
|
||||
If you set `sound.enable` in your configuration:
|
||||
- If you are using Pulseaudio or PipeWire, simply remove that option
|
||||
- If you are not using an external sound server, and want volumes to be persisted across shutdowns, set `hardware.alsa.enablePersistence = true` instead
|
||||
- If you are using ALSA as your only sound system (no sound server), set `hardware.alsa.enable = true` instead
|
||||
|
||||
If you set `sound.enableOSSEmulation` in your configuration:
|
||||
- Make sure it is still necessary, as very few applications actually use OSS
|
||||
- If necessary, set `boot.kernelModules = [ "snd_pcm_oss" ]`
|
||||
- If necessary, set `hardware.alsa.enableOSSEmulation = true`
|
||||
|
||||
If you set `sound.extraConfig` in your configuration:
|
||||
- If you are using another sound server, like Pulseaudio, JACK or PipeWire, migrate your configuration to that
|
||||
- If you are not using an external sound server, set `environment.etc."asound.conf".text = yourExtraConfig` instead
|
||||
- If you are using a sound server, like Pulseaudio, JACK or PipeWire, migrate your configuration to that
|
||||
- If you are using ALSA as your only sound system, check if you can use the new structured ALSA options `hardware.alsa.defaultDevice`, `hardware.alsa.cardAliases`, `hardware.alsa.controls`, etc.
|
||||
- Otherwise, move your configuration directly into `hardware.alsa.config`
|
||||
|
||||
If you set `sound.mediaKeys` in your configuration:
|
||||
- Preferably switch to handling media keys in your desktop environment/compositor
|
||||
|
||||
@@ -117,9 +117,11 @@ in
|
||||
i18n.inputMethod.fcitx5.addons =
|
||||
lib.optionals (cfg.quickPhrase != { }) [
|
||||
(pkgs.writeTextDir "share/fcitx5/data/QuickPhrase.mb" (
|
||||
lib.mapAttrsToList (
|
||||
name: value: "${name} ${builtins.replaceStrings [ "\\" "\n" ] [ "\\\\" "\\n" ] value}"
|
||||
) cfg.quickPhrase
|
||||
lib.concatStringsSep "\n" (
|
||||
lib.mapAttrsToList (
|
||||
name: value: "${name} ${builtins.replaceStrings [ "\\" "\n" ] [ "\\\\" "\\n" ] value}"
|
||||
) cfg.quickPhrase
|
||||
)
|
||||
))
|
||||
]
|
||||
++ lib.optionals (cfg.quickPhraseFiles != { }) [
|
||||
|
||||
@@ -1,27 +1,420 @@
|
||||
# ALSA sound support.
|
||||
{ config, lib, pkgs, ... }:
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.hardware.alsa;
|
||||
|
||||
quote = x: ''"${lib.escape [ "\"" ] x}"'';
|
||||
|
||||
alsactl = lib.getExe' pkgs.alsa-utils "alsactl";
|
||||
|
||||
# Creates a volume control
|
||||
mkControl = name: opts: ''
|
||||
pcm.${name} {
|
||||
type softvol
|
||||
slave.pcm ${quote opts.device}
|
||||
control.name ${quote (if opts.name != null then opts.name else name)}
|
||||
control.card ${quote opts.card}
|
||||
max_dB ${toString opts.maxVolume}
|
||||
}
|
||||
'';
|
||||
|
||||
# modprobe.conf for naming sound cards
|
||||
cardsConfig =
|
||||
let
|
||||
# Reverse the mapping from card name→driver to card driver→name
|
||||
drivers = lib.unique (lib.mapAttrsToList (n: v: v.driver) cfg.cardAliases);
|
||||
options = lib.forEach drivers (
|
||||
drv:
|
||||
let
|
||||
byDriver = lib.filterAttrs (n: v: v.driver == drv);
|
||||
ids = lib.mapAttrs (n: v: v.id) (byDriver cfg.cardAliases);
|
||||
in
|
||||
{
|
||||
driver = drv;
|
||||
names = lib.attrNames ids;
|
||||
ids = lib.attrValues ids;
|
||||
}
|
||||
);
|
||||
toList = x: lib.concatStringsSep "," (map toString x);
|
||||
in
|
||||
lib.forEach options (i: "options ${i.driver} index=${toList i.ids} id=${toList i.names}");
|
||||
|
||||
defaultDeviceVars = {
|
||||
"ALSA_AUDIO_OUT" = cfg.defaultDevice.playback;
|
||||
"ALSA_AUDIO_IN" = cfg.defaultDevice.capture;
|
||||
};
|
||||
|
||||
in
|
||||
|
||||
{
|
||||
imports = [
|
||||
(lib.mkRemovedOptionModule [ "sound" ] "The option was heavily overloaded and can be removed from most configurations.")
|
||||
(lib.mkRemovedOptionModule [ "sound" "enable" ] ''
|
||||
The option was heavily overloaded and can be removed from most configurations.
|
||||
To specifically configure the user space part of ALSA, see `hardware.alsa`.
|
||||
'')
|
||||
(lib.mkRemovedOptionModule [ "sound" "mediaKeys" ] ''
|
||||
The media keys can be configured with any hotkey daemon (that better
|
||||
integrates with your desktop setup). To continue using the actkbd daemon
|
||||
(which was used up to NixOS 24.05), add these lines to your configuration:
|
||||
|
||||
services.actkbd.enable = true;
|
||||
services.actkbd.bindings = [
|
||||
# Mute
|
||||
{ keys = [ 113 ]; events = [ "key" ];
|
||||
command = "''${pkgs.alsa-utils}/bin/amixer -q set Master toggle";
|
||||
}
|
||||
# Volume down
|
||||
{ keys = [ 114 ]; events = [ "key" "rep" ];
|
||||
command = "''${pkgs.alsa-utils}/bin/amixer -q set Master 1- unmute";
|
||||
}
|
||||
# Volume up
|
||||
{ keys = [ 115 ]; events = [ "key" "rep" ];
|
||||
command = "''${pkgs.alsa-utils}/bin/amixer -q set Master 1+ unmute";
|
||||
}
|
||||
# Mic Mute
|
||||
{ keys = [ 190 ]; events = [ "key" ];
|
||||
command = "''${pkgs.alsa-utils}/bin/amixer -q set Capture toggle";
|
||||
}
|
||||
];
|
||||
'')
|
||||
(lib.mkRenamedOptionModule
|
||||
[ "sound" "enableOSSEmulation" ]
|
||||
[ "hardware" "alsa" "enableOSSEmulation" ]
|
||||
)
|
||||
(lib.mkRenamedOptionModule
|
||||
[ "sound" "extraConfig" ]
|
||||
[ "hardware" "alsa" "config" ])
|
||||
];
|
||||
|
||||
options.hardware.alsa.enablePersistence = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Whether to enable ALSA sound card state saving on shutdown.
|
||||
This is generally not necessary if you're using an external sound server.
|
||||
'';
|
||||
options.hardware.alsa = {
|
||||
|
||||
enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Whether to set up the user space part of the Advanced Linux Sound Architecture (ALSA)
|
||||
|
||||
::: {.warning}
|
||||
Enable this option only if you want to use ALSA as your main sound system,
|
||||
not if you're using a sound server (e.g. PulseAudio or Pipewire).
|
||||
:::
|
||||
'';
|
||||
};
|
||||
|
||||
enableOSSEmulation = lib.mkEnableOption "the OSS emulation";
|
||||
|
||||
enableRecorder = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Whether to set up a loopback device that continuously records and
|
||||
allows to play back audio from the computer.
|
||||
|
||||
The loopback device is named `pcm.recorder`, audio can be saved
|
||||
by capturing from this device as with any microphone.
|
||||
|
||||
::: {.note}
|
||||
By default the output is duplicated to the recorder assuming stereo
|
||||
audio, for a more complex layout you have to override the pcm.splitter
|
||||
device using `hardware.alsa.config`.
|
||||
See the generated /etc/asound.conf for its definition.
|
||||
:::
|
||||
'';
|
||||
};
|
||||
|
||||
defaultDevice.playback = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "";
|
||||
example = "dmix:CARD=1,DEV=0";
|
||||
description = ''
|
||||
The default playback device.
|
||||
Leave empty to let ALSA pick the default automatically.
|
||||
|
||||
::: {.note}
|
||||
The device can be changed at runtime by setting the ALSA_AUDIO_OUT
|
||||
environment variables (but only before starting a program).
|
||||
:::
|
||||
'';
|
||||
};
|
||||
|
||||
defaultDevice.capture = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "";
|
||||
example = "dsnoop:CARD=0,DEV=2";
|
||||
description = ''
|
||||
The default capture device (i.e. microphone).
|
||||
Leave empty to let ALSA pick the default automatically.
|
||||
|
||||
::: {.note}
|
||||
The device can be changed at runtime by setting the ALSA_AUDIO_IN
|
||||
environment variables (but only before starting a program).
|
||||
:::
|
||||
'';
|
||||
};
|
||||
|
||||
controls = lib.mkOption {
|
||||
type = lib.types.attrsOf (
|
||||
lib.types.submodule ({
|
||||
options.name = lib.mkOption {
|
||||
type = lib.types.nullOr lib.types.str;
|
||||
default = null;
|
||||
description = ''
|
||||
Name of the control, as it appears in `alsamixer`.
|
||||
If null it will be the same as the softvol device name.
|
||||
'';
|
||||
};
|
||||
options.device = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "default";
|
||||
description = ''
|
||||
Name of the PCM device to control (slave).
|
||||
'';
|
||||
};
|
||||
options.card = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "default";
|
||||
description = ''
|
||||
Name of the PCM card to control (slave).
|
||||
'';
|
||||
};
|
||||
options.maxVolume = lib.mkOption {
|
||||
type = lib.types.float;
|
||||
default = 0.0;
|
||||
description = ''
|
||||
The maximum volume in dB.
|
||||
'';
|
||||
};
|
||||
})
|
||||
);
|
||||
default = {};
|
||||
example = lib.literalExpression ''
|
||||
{
|
||||
firefox = { device = "front"; maxVolume = -25.0; };
|
||||
mpv = { device = "front"; maxVolume = -25.0; };
|
||||
# and run programs with `env ALSA_AUDIO_OUT=<name>`
|
||||
}
|
||||
'';
|
||||
description = ''
|
||||
Virtual volume controls (softvols) to add to a sound card.
|
||||
These can be used to control the volume of specific applications
|
||||
or a digital output device (HDMI video card).
|
||||
'';
|
||||
};
|
||||
|
||||
cardAliases = lib.mkOption {
|
||||
type = lib.types.attrsOf (
|
||||
lib.types.submodule ({
|
||||
options.driver = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
description = ''
|
||||
Name of the kernel module that provides the card.
|
||||
'';
|
||||
};
|
||||
options.id = lib.mkOption {
|
||||
type = lib.types.int;
|
||||
default = "default";
|
||||
description = ''
|
||||
The ID of the sound card
|
||||
'';
|
||||
};
|
||||
})
|
||||
);
|
||||
default = { };
|
||||
example = lib.literalExpression ''
|
||||
{
|
||||
soundchip = { driver = "snd_intel_hda"; id = 0; };
|
||||
videocard = { driver = "snd_intel_hda"; id = 1; };
|
||||
usb = { driver = "snd_usb_audio"; id = 2; };
|
||||
}
|
||||
'';
|
||||
description = ''
|
||||
Assign custom names and reorder the sound cards.
|
||||
|
||||
::: {.note}
|
||||
You can find the card ids by looking at `/proc/asound/cards`.
|
||||
:::
|
||||
'';
|
||||
};
|
||||
|
||||
deviceAliases = lib.mkOption {
|
||||
type = lib.types.attrsOf lib.types.str;
|
||||
default = { };
|
||||
example = lib.literalExpression ''
|
||||
{
|
||||
hdmi1 = "hw:CARD=videocard,DEV=5";
|
||||
hdmi2 = "hw:CARD=videocard,DEV=6";
|
||||
}
|
||||
'';
|
||||
description = ''
|
||||
Assign custom names to sound cards.
|
||||
'';
|
||||
};
|
||||
|
||||
config = lib.mkOption {
|
||||
type = lib.types.lines;
|
||||
default = "";
|
||||
example = lib.literalExpression ''
|
||||
# Send audio to a remote host via SSH
|
||||
pcm.remote {
|
||||
@args [ HOSTNAME ]
|
||||
@args.HOSTNAME { type string }
|
||||
type file
|
||||
format raw
|
||||
slave.pcm pcm.null
|
||||
file {
|
||||
@func concat
|
||||
strings [
|
||||
"| ''${lib.getExec pkgs.openssh} -C "
|
||||
$HOSTNAME
|
||||
" aplay -f %f -c %c -r %r -"
|
||||
]
|
||||
}
|
||||
}
|
||||
'';
|
||||
description = ''
|
||||
The content of the system-wide ALSA configuration (/etc/asound.conf).
|
||||
|
||||
Documentation of the configuration language and examples can be found
|
||||
in the unofficial ALSA wiki: https://alsa.opensrc.org/Asoundrc
|
||||
'';
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
config = lib.mkIf config.hardware.alsa.enablePersistence {
|
||||
# ALSA provides a udev rule for restoring volume settings.
|
||||
services.udev.packages = [ pkgs.alsa-utils ];
|
||||
config = lib.mkIf cfg.enable {
|
||||
|
||||
# Disable sound servers enabled by default and,
|
||||
# if the user enabled one manually, cause a conflict.
|
||||
services.pipewire.enable = false;
|
||||
hardware.pulseaudio.enable = false;
|
||||
|
||||
hardware.alsa.config =
|
||||
let
|
||||
conf = [
|
||||
''
|
||||
pcm.!default fromenv
|
||||
|
||||
# Read the capture and playback device from
|
||||
# the ALSA_AUDIO_IN, ALSA_AUDIO_OUT variables
|
||||
pcm.fromenv {
|
||||
type asym
|
||||
playback.pcm {
|
||||
type plug
|
||||
slave.pcm {
|
||||
@func getenv
|
||||
vars [ ALSA_AUDIO_OUT ]
|
||||
default pcm.sysdefault
|
||||
}
|
||||
}
|
||||
capture.pcm {
|
||||
type plug
|
||||
slave.pcm {
|
||||
@func getenv
|
||||
vars [ ALSA_AUDIO_IN ]
|
||||
default pcm.sysdefault
|
||||
}
|
||||
}
|
||||
}
|
||||
''
|
||||
(lib.optional cfg.enableRecorder ''
|
||||
pcm.!default "splitter:fromenv,recorder"
|
||||
|
||||
# Send audio to two stereo devices
|
||||
pcm.splitter {
|
||||
@args [ A B ]
|
||||
@args.A.type string
|
||||
@args.B.type string
|
||||
type asym
|
||||
playback.pcm {
|
||||
type plug
|
||||
route_policy "duplicate"
|
||||
slave.pcm {
|
||||
type multi
|
||||
slaves.a.pcm $A
|
||||
slaves.b.pcm $B
|
||||
slaves.a.channels 2
|
||||
slaves.b.channels 2
|
||||
bindings [
|
||||
{ slave a channel 0 }
|
||||
{ slave a channel 1 }
|
||||
{ slave b channel 0 }
|
||||
{ slave b channel 1 }
|
||||
]
|
||||
}
|
||||
}
|
||||
capture.pcm $A
|
||||
}
|
||||
|
||||
# Device which records and plays back audio
|
||||
pcm.recorder {
|
||||
type asym
|
||||
capture.pcm {
|
||||
type dsnoop
|
||||
ipc_key 9165218
|
||||
ipc_perm 0666
|
||||
slave.pcm "hw:loopback,1,0"
|
||||
slave.period_size 1024
|
||||
slave.buffer_size 8192
|
||||
}
|
||||
playback.pcm {
|
||||
type dmix
|
||||
ipc_key 6181923
|
||||
ipc_perm 0666
|
||||
slave.pcm "hw:loopback,0,0"
|
||||
slave.period_size 1024
|
||||
slave.buffer_size 8192
|
||||
}
|
||||
}
|
||||
'')
|
||||
(lib.mapAttrsToList mkControl cfg.controls)
|
||||
(lib.mapAttrsToList (n: v: "pcm.${n} ${quote v}") cfg.deviceAliases)
|
||||
];
|
||||
in
|
||||
lib.mkBefore (lib.concatStringsSep "\n" (lib.flatten conf));
|
||||
|
||||
hardware.alsa.cardAliases = lib.mkIf cfg.enableRecorder {
|
||||
loopback.driver = "snd_aloop";
|
||||
loopback.id = 2;
|
||||
};
|
||||
|
||||
# Set default PCM devices
|
||||
environment.sessionVariables = defaultDeviceVars;
|
||||
systemd.globalEnvironment = defaultDeviceVars;
|
||||
|
||||
environment.etc."asound.conf".text = cfg.config;
|
||||
|
||||
boot.kernelModules =
|
||||
[ ]
|
||||
++ lib.optionals cfg.enableOSSEmulation [ "snd_pcm_oss" "snd_mixer_oss" ]
|
||||
++ lib.optionals cfg.enableRecorder [ "snd_aloop" ];
|
||||
|
||||
# Assign names to the sound cards
|
||||
boot.extraModprobeConfig = lib.concatStringsSep "\n" cardsConfig;
|
||||
|
||||
# Provide alsamixer, aplay, arecord, etc.
|
||||
environment.systemPackages = [ pkgs.alsa-utils ];
|
||||
|
||||
# Install udev rules for restoring card settings on boot
|
||||
services.udev.extraRules = ''
|
||||
ACTION=="add", SUBSYSTEM=="sound", KERNEL=="controlC*", KERNELS!="card*", GOTO="alsa_restore_go"
|
||||
GOTO="alsa_restore_end"
|
||||
|
||||
LABEL="alsa_restore_go"
|
||||
TEST!="/etc/alsa/state-daemon.conf", RUN+="${alsactl} restore -gU $attr{device/number}"
|
||||
TEST=="/etc/alsa/state-daemon.conf", RUN+="${alsactl} nrestore -gU $attr{device/number}"
|
||||
LABEL="alsa_restore_end"
|
||||
'';
|
||||
|
||||
# Service to store/restore the sound card settings
|
||||
systemd.services.alsa-store = {
|
||||
description = "Store Sound Card State";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
restartIfChanged = false;
|
||||
unitConfig = {
|
||||
RequiresMountsFor = "/var/lib/alsa";
|
||||
ConditionVirtualization = "!systemd-nspawn";
|
||||
@@ -29,10 +422,18 @@
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
RemainAfterExit = true;
|
||||
ExecStartPre = "${pkgs.coreutils}/bin/mkdir -p /var/lib/alsa";
|
||||
ExecStart = "${pkgs.alsa-utils}/sbin/alsactl restore --ignore";
|
||||
ExecStop = "${pkgs.alsa-utils}/sbin/alsactl store --ignore";
|
||||
StateDirectory = "alsa";
|
||||
# Note: the service should never be restated, otherwise any
|
||||
# setting changed between the last `store` and now will be lost.
|
||||
# To prevent NixOS from starting it in case it has failed we
|
||||
# expand the exit codes considered successful
|
||||
SuccessExitStatus = [ 0 99 ];
|
||||
ExecStart = "${alsactl} restore -gU";
|
||||
ExecStop = "${alsactl} store -gU";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
meta.maintainers = with lib.maintainers; [ rnhmjoj ];
|
||||
|
||||
}
|
||||
|
||||
+6
-28
@@ -18,37 +18,15 @@ import ./make-test-python.nix ({ lib, pkgs, firefoxPackage, ... }:
|
||||
package = firefoxPackage;
|
||||
};
|
||||
|
||||
# Create a virtual sound device, with mixing
|
||||
# and all, for recording audio.
|
||||
boot.kernelModules = [ "snd-aloop" ];
|
||||
environment.etc."asound.conf".text = ''
|
||||
pcm.!default {
|
||||
type plug
|
||||
slave.pcm pcm.dmixer
|
||||
}
|
||||
pcm.dmixer {
|
||||
type dmix
|
||||
ipc_key 1
|
||||
slave {
|
||||
pcm "hw:Loopback,0,0"
|
||||
rate 48000
|
||||
periods 128
|
||||
period_time 0
|
||||
period_size 1024
|
||||
buffer_size 8192
|
||||
}
|
||||
}
|
||||
pcm.recorder {
|
||||
type hw
|
||||
card "Loopback"
|
||||
device 1
|
||||
subdevice 0
|
||||
}
|
||||
'';
|
||||
hardware.alsa = {
|
||||
enable = true;
|
||||
enableRecorder = true;
|
||||
defaultDevice.playback = "pcm.recorder";
|
||||
};
|
||||
|
||||
systemd.services.audio-recorder = {
|
||||
description = "Record NixOS test audio to /tmp/record.wav";
|
||||
script = "${pkgs.alsa-utils}/bin/arecord -D recorder -f S16_LE -r48000 /tmp/record.wav";
|
||||
script = "${pkgs.alsa-utils}/bin/arecord -Drecorder -fS16_LE -r48000 -c2 /tmp/record.wav";
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
@@ -5,10 +5,10 @@
|
||||
}:
|
||||
let
|
||||
pname = "protonup-qt";
|
||||
version = "2.10.2";
|
||||
version = "2.11.1";
|
||||
src = fetchurl {
|
||||
url = "https://github.com/DavidoTek/ProtonUp-Qt/releases/download/v${version}/ProtonUp-Qt-${version}-x86_64.AppImage";
|
||||
hash = "sha256-WWLAA5FryvqwgEQysnE1w2k9Wq4y7yNJ4Drojg1SKYg=";
|
||||
hash = "sha256-xHkeAqveXF8YLFvKHTZtSvINIIoiqhNbwVuKfnaHcQI=";
|
||||
};
|
||||
appimageContents = appimageTools.extractType2 { inherit pname version src; };
|
||||
in
|
||||
|
||||
@@ -28,12 +28,20 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
dontUseImakeConfigure = true;
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
nativeBuildInputs = [
|
||||
bison
|
||||
imake
|
||||
perl
|
||||
pkg-config
|
||||
tzdata
|
||||
which
|
||||
];
|
||||
buildInputs = [
|
||||
bzip2 gfortran libX11 libXmu libXt libXt libjpeg libpng libtiff ncurses
|
||||
pango pcre2 perl readline (texliveSmall.withPackages (ps: with ps; [ inconsolata helvetic ps.texinfo fancyvrb cm-super rsfs ])) xz zlib less texinfo graphviz icu
|
||||
bison imake which blas lapack curl tcl tk jdk tzdata
|
||||
pango pcre2 readline (texliveSmall.withPackages (ps: with ps; [ inconsolata helvetic ps.texinfo fancyvrb cm-super rsfs ])) xz zlib less texinfo graphviz icu
|
||||
which blas lapack curl tcl tk jdk
|
||||
] ++ lib.optionals stdenv.hostPlatform.isDarwin [ Cocoa Foundation libobjc libcxx ];
|
||||
strictDeps = true;
|
||||
|
||||
patches = [
|
||||
./no-usr-local-search-paths.patch
|
||||
@@ -75,6 +83,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
FC="${gfortran}/bin/gfortran" F77="${gfortran}/bin/gfortran"
|
||||
JAVA_HOME="${jdk}"
|
||||
RANLIB=$(type -p ranlib)
|
||||
CURL_CONFIG="${lib.getExe' (lib.getDev curl) "curl-config"}"
|
||||
r_cv_have_curl728=yes
|
||||
R_SHELL="${stdenv.shell}"
|
||||
'' + lib.optionalString stdenv.hostPlatform.isDarwin ''
|
||||
|
||||
@@ -19,13 +19,13 @@ let
|
||||
in
|
||||
buildBazelPackage rec {
|
||||
pname = "bant";
|
||||
version = "0.1.9";
|
||||
version = "0.1.11";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "hzeller";
|
||||
repo = "bant";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-TIVbf5qZNohZAFugi/E7m1Sgekn82/qqtx8jSHo75Js=";
|
||||
hash = "sha256-vqZGHMIs4t1TP+9r2hvtFXN5B5GXZerC18l8gQA9cmQ=";
|
||||
};
|
||||
|
||||
bazelFlags = [
|
||||
|
||||
@@ -6,13 +6,13 @@
|
||||
}:
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "clangbuildanalyzer";
|
||||
version = "1.5.0";
|
||||
version = "1.6.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "aras-p";
|
||||
repo = "ClangBuildAnalyzer";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-kmgdk634zM0W0OoRoP/RzepArSipa5bNqdVgdZO9gxo=";
|
||||
hash = "sha256-GIMQZGPFKDrfMqCsA8nR3O8Hzp2jcaZ+yDrPeCxTsIg=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -63,13 +63,13 @@ let
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "cp2k";
|
||||
version = "2024.3";
|
||||
version = "2025.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cp2k";
|
||||
repo = "cp2k";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-TeVQ0wVUx6d4knwMi9z3LjQZ4ELE6s1TnvwfFz8jbYk=";
|
||||
hash = "sha256-04AFiEuv+EYubZVoYErQDdr9zipKlF7Gqy8DrUaYUMk=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
||||
@@ -2,10 +2,10 @@
|
||||
|
||||
buildDotnetGlobalTool {
|
||||
pname = "csharpier";
|
||||
version = "0.30.3";
|
||||
version = "0.30.5";
|
||||
executables = "dotnet-csharpier";
|
||||
|
||||
nugetHash = "sha256-W+O6zrHkRru/s0MT0SGa58PlPHgFE4wxtqZj2GJDRos=";
|
||||
nugetHash = "sha256-8NuhwRhvEZtmPtgbLLNbTOLUoDAihtkKE8aw5UQ0O5A=";
|
||||
|
||||
meta = with lib; {
|
||||
description = "Opinionated code formatter for C#";
|
||||
|
||||
@@ -9,16 +9,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "dnscontrol";
|
||||
version = "4.15.2";
|
||||
version = "4.15.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "StackExchange";
|
||||
repo = "dnscontrol";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-/bYu/zOwWTgLx7vexp/V8+llaVoioQLiQdSHV9w5Qug=";
|
||||
hash = "sha256-0vg3y/bUp5BTFhJbIdohvuj1DNu9bykDwMM3bWnKvNU=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-lfefR0NjeQEYIl1GyjzfsNJgdDGO/ULZtIhleL3CyC8=";
|
||||
vendorHash = "sha256-JMi4FDgZT94KyqDR57xgp1vnP7Htdn/bksntbQdGyZ0=";
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
{
|
||||
lib,
|
||||
buildGoModule,
|
||||
fetchFromGitHub,
|
||||
versionCheckHook,
|
||||
nix-update-script,
|
||||
}:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "filebeat";
|
||||
version = "8.16.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "elastic";
|
||||
repo = "beats";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-suzubh5aILiuRe8/wb52fnSujGNhGRXBxE8jv1WDzNc=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-wspQImG/cxWglwojweuH+h5abTSrtcK6F8cpBeCDH/U=";
|
||||
|
||||
subPackages = [ "filebeat" ];
|
||||
|
||||
nativeInstallCheckInputs = [
|
||||
versionCheckHook
|
||||
];
|
||||
|
||||
versionCheckProgramArg = [ "version" ];
|
||||
doInstallCheck = true;
|
||||
|
||||
passthru = {
|
||||
updateScript = nix-update-script { };
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Tails and ships log files";
|
||||
homepage = "https://github.com/elastic/beats";
|
||||
changelog = "https://www.elastic.co/guide/en/beats/libbeat/${version}/release-notes-${version}.html";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [ srhb ];
|
||||
mainProgram = "filebeat";
|
||||
};
|
||||
}
|
||||
@@ -21,7 +21,7 @@
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "hashes";
|
||||
version = "1.1.0";
|
||||
version = "1.1.1";
|
||||
|
||||
pyproject = false;
|
||||
|
||||
@@ -29,7 +29,7 @@ python3Packages.buildPythonApplication rec {
|
||||
owner = "zefr0x";
|
||||
repo = "hashes";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-BmfSCHs+JcpsAG8AhaYf+SDFI+LdJKMKgBIodd66qmw=";
|
||||
hash = "sha256-4khMRtKvYQkTwhiqv7FUy/jroGboNTdG1Q6wlTD4cwA=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -9,11 +9,11 @@
|
||||
|
||||
stdenvNoCC.mkDerivation rec {
|
||||
pname = "komga";
|
||||
version = "1.15.1";
|
||||
version = "1.16.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/gotson/${pname}/releases/download/${version}/${pname}-${version}.jar";
|
||||
sha256 = "sha256-Gv0AaW3aTjLjNAzC5FJMVfvZyIN23ezPpRk15OYyKKs=";
|
||||
sha256 = "sha256-6q7ZtTdbH2nIPIm6gNQZz2QxHlbWULsflhWJ0aDMFH4=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
}:
|
||||
stdenvNoCC.mkDerivation rec {
|
||||
pname = "morewaita-icon-theme";
|
||||
version = "47.2";
|
||||
version = "47.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "somepaulo";
|
||||
repo = "MoreWaita";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-LvkYLY8PYajCb1x1p0HfpKoMq+t4XwH/w9Hvy9YXzk0=";
|
||||
hash = "sha256-ImpBIpNs29JMAeWZTQ93BfWC9JBzu4Y/cuulyzD9Xyg=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -6,7 +6,7 @@ index b7320bb..d7169da 100644
|
||||
check_function_exists (strtoimax HAVE_STRTOIMAX)
|
||||
check_function_exists (strtoumax HAVE_STRTOUMAX)
|
||||
|
||||
-set(ANTLR_JAR_FILENAME "antlr-4.11.1-complete.jar")
|
||||
-set(ANTLR_JAR_FILENAME "antlr-4.13.2-complete.jar")
|
||||
-get_filename_component(SOURCE_PARENT_DIR ${CMAKE_SOURCE_DIR} DIRECTORY)
|
||||
-set(LINUX_RES_BIN_DIR ${SOURCE_PARENT_DIR}/linux-res/bin)
|
||||
-message("WITH_ANTLR_JAR: ${WITH_ANTLR_JAR}")
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
libiodbc,
|
||||
proj,
|
||||
|
||||
antlr4_12,
|
||||
antlr4_13,
|
||||
gtkmm3,
|
||||
libxml2,
|
||||
libmysqlconnectorcpp,
|
||||
@@ -52,11 +52,11 @@ let
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "mysql-workbench";
|
||||
version = "8.0.38";
|
||||
version = "8.0.40";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://cdn.mysql.com/Downloads/MySQLGUITools/mysql-workbench-community-${finalAttrs.version}-src.tar.gz";
|
||||
hash = "sha256-W2RsA2hIRUaNRK0Q5pN1YODbEiw6HE3cfeisPdUcYPY=";
|
||||
hash = "sha256-/CrjHgZ3IFFvUB1IxeURme8Z6BoZx0b03MWk8QCe0Sg=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
@@ -101,7 +101,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
antlr4_12.runtime.cpp
|
||||
antlr4_13.runtime.cpp
|
||||
gtkmm3
|
||||
(libxml2.override { enableHttp = true; })
|
||||
libmysqlconnectorcpp
|
||||
@@ -141,7 +141,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
cmakeFlags = [
|
||||
(lib.cmakeFeature "MySQL_CONFIG_PATH" (lib.getExe' mysql "mysql_config"))
|
||||
(lib.cmakeFeature "IODBC_CONFIG_PATH" (lib.getExe' libiodbc "iodbc-config"))
|
||||
(lib.cmakeFeature "ANTLR_JAR_PATH" "${antlr4_12.jarLocation}")
|
||||
(lib.cmakeFeature "ANTLR_JAR_PATH" "${antlr4_13.jarLocation}")
|
||||
# mysql-workbench 8.0.21 depends on libmysqlconnectorcpp 1.1.8.
|
||||
# Newer versions of connector still provide the legacy library when enabled
|
||||
# but the headers are in a different location.
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"x86_64-darwin": {
|
||||
"version": "4.2.0",
|
||||
"url": "https://desktop-release.notion-static.com/Notion-4.2.0.zip",
|
||||
"hash": "sha512-FLptPNEtS9fTevSeGC00hDtpgSks+8JtEKRTtWlYPtI0vpA1KqixBdv2OaNSK1W7Krlsl25RpTOl8cJdQxcv4Q=="
|
||||
},
|
||||
"aarch64-darwin": {
|
||||
"version": "4.2.0",
|
||||
"url": "https://desktop-release.notion-static.com/Notion-arm64-4.2.0.zip",
|
||||
"hash": "sha512-cxfO3Bm7ZzAQMi0Pdwd3nvQlRPjn4w7j0ojYUCcn660YsBtoVkpNhiuqg9pbWzY0Umh+/8Zig9CGXKjjP94Iww=="
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
{
|
||||
lib,
|
||||
stdenvNoCC,
|
||||
fetchurl,
|
||||
unzip,
|
||||
}:
|
||||
let
|
||||
info =
|
||||
(builtins.fromJSON (builtins.readFile ./info.json))."${stdenvNoCC.targetPlatform.system}"
|
||||
or (throw "notion-app: unsupported system ${stdenvNoCC.targetPlatform.system}");
|
||||
in
|
||||
stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
pname = "notion-app";
|
||||
version = info.version;
|
||||
|
||||
src = fetchurl { inherit (info) url hash; };
|
||||
|
||||
sourceRoot = ".";
|
||||
nativeBuildInputs = [ unzip ];
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/Applications
|
||||
mv Notion.app $out/Applications
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
passthru.updateScript = ./update/update.mjs;
|
||||
|
||||
meta = {
|
||||
description = "App to write, plan, collaborate, and get organised";
|
||||
homepage = "https://www.notion.so/";
|
||||
license = lib.licenses.unfree;
|
||||
maintainers = with lib.maintainers; [ xiaoxiangmoe ];
|
||||
platforms = [
|
||||
"x86_64-darwin"
|
||||
"aarch64-darwin"
|
||||
];
|
||||
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
|
||||
};
|
||||
})
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"allowJs": true,
|
||||
"checkJs": true,
|
||||
"module": "NodeNext",
|
||||
"noEmit": true,
|
||||
"strict": true
|
||||
}
|
||||
}
|
||||
Executable
+88
@@ -0,0 +1,88 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
/*
|
||||
#!nix-shell -i node --pure --packages cacert nodejs yq-go
|
||||
*/
|
||||
import * as assert from "node:assert/strict";
|
||||
import * as child_process from "node:child_process";
|
||||
import * as fsPromises from "node:fs/promises";
|
||||
import * as path from "node:path";
|
||||
|
||||
const __dirname = import.meta.dirname;
|
||||
|
||||
/** @typedef {{
|
||||
version: string;
|
||||
path: `${string}.zip`;
|
||||
sha512: string;
|
||||
releaseDate: string;
|
||||
files: Array<{ url: string; sha512: string; size: number }>;
|
||||
}} LiveCheckInfo */
|
||||
|
||||
/** @typedef {{
|
||||
version: string;
|
||||
url: string;
|
||||
hash: `sha512-${string}`;
|
||||
}} Info */
|
||||
|
||||
/** @typedef {{
|
||||
"x86_64-darwin": Info;
|
||||
"aarch64-darwin": Info;
|
||||
}} InfoMap */
|
||||
|
||||
const BASE_URL = "https://desktop-release.notion-static.com/";
|
||||
/**
|
||||
*
|
||||
* @param {"latest-mac.yml" | "arm64-mac.yml"} liveCheckFile
|
||||
* @returns {Promise<Info>}
|
||||
*/
|
||||
async function getInfo(liveCheckFile) {
|
||||
const url = /** @type {const} */ (`${BASE_URL}${liveCheckFile}`);
|
||||
const response = await fetch(url);
|
||||
assert.ok(response.ok, `Failed to fetch ${url}`);
|
||||
/** @type {LiveCheckInfo} */
|
||||
const { version, path, sha512 } = JSON.parse(
|
||||
child_process
|
||||
.execSync(`yq eval --output-format=json`, {
|
||||
input: Buffer.from(await response.arrayBuffer()),
|
||||
})
|
||||
.toString()
|
||||
);
|
||||
assert.ok(version, "version is required");
|
||||
assert.ok(path, "path is required");
|
||||
assert.ok(sha512, "sha512 is required");
|
||||
return {
|
||||
version,
|
||||
url: BASE_URL + path,
|
||||
hash: `sha512-${sha512}`,
|
||||
};
|
||||
}
|
||||
|
||||
async function main() {
|
||||
const filePath = path.join(__dirname, "../info.json");
|
||||
/** @type {InfoMap} */
|
||||
const oldInfo = JSON.parse(
|
||||
await fsPromises.readFile(filePath, { encoding: "utf-8" })
|
||||
);
|
||||
/** @type {InfoMap} */
|
||||
const info = {
|
||||
"x86_64-darwin": await getInfo("latest-mac.yml"),
|
||||
"aarch64-darwin": await getInfo("arm64-mac.yml"),
|
||||
};
|
||||
if (JSON.stringify(oldInfo) === JSON.stringify(info)) {
|
||||
console.log("[update] No updates found");
|
||||
return;
|
||||
}
|
||||
const platforms = /** @type {const} */ (["x86_64-darwin", "aarch64-darwin"]);
|
||||
for (const platform of platforms) {
|
||||
console.log(
|
||||
`[update] Updating Notion ${platform} ${oldInfo[platform].version} -> ${info[platform].version}`
|
||||
);
|
||||
}
|
||||
await fsPromises.writeFile(
|
||||
filePath,
|
||||
JSON.stringify(info, null, 2) + "\n",
|
||||
"utf-8"
|
||||
);
|
||||
console.log("[update] Updating Notion complete");
|
||||
}
|
||||
|
||||
main();
|
||||
@@ -9,13 +9,13 @@
|
||||
}:
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
name = "oqs-provider";
|
||||
version = "0.7.0";
|
||||
version = "0.8.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "open-quantum-safe";
|
||||
repo = "oqs-provider";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-v7YIE5uzBvQHfi2hqkkRrW0F3K4haZyuoKHxAtRqQDA=";
|
||||
hash = "sha256-P3UEiWYchHVQ5s3JXHOzaDaN09K62pMYjnrW/gS5x/I=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -26,7 +26,7 @@ stdenvNoCC.mkDerivation rec {
|
||||
description = "Posy's Improved Cursors for Linux";
|
||||
homepage = "https://github.com/simtrami/posy-improved-cursor-linux";
|
||||
platforms = platforms.unix;
|
||||
license = licenses.unfree;
|
||||
license = licenses.cc-by-nc-40;
|
||||
maintainers = with maintainers; [ mkez ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
pciutils,
|
||||
procps,
|
||||
python3,
|
||||
qemu_full,
|
||||
qemu,
|
||||
socat,
|
||||
spice-gtk,
|
||||
swtpm,
|
||||
@@ -40,7 +40,7 @@ let
|
||||
pciutils
|
||||
procps
|
||||
python3
|
||||
qemu_full
|
||||
(qemu.override { smbdSupport = true; })
|
||||
socat
|
||||
swtpm
|
||||
util-linux
|
||||
|
||||
@@ -42,7 +42,7 @@ buildGoModule rec {
|
||||
meta = with lib; {
|
||||
description = "Your everyday IRC student";
|
||||
mainProgram = "senpai";
|
||||
homepage = "https://sr.ht/~taiite/senpai/";
|
||||
homepage = "https://sr.ht/~delthas/senpai/";
|
||||
changelog = "https://git.sr.ht/~delthas/senpai/refs/v${version}";
|
||||
license = licenses.isc;
|
||||
maintainers = with maintainers; [ malte-v ];
|
||||
|
||||
@@ -23,13 +23,13 @@ assert lib.elem lineEditingLibrary [
|
||||
];
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "trealla";
|
||||
version = "2.63.10";
|
||||
version = "2.63.11";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "trealla-prolog";
|
||||
repo = "trealla";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-LGikCupqzUZ2CG63c8aEeJHX+8nNMUaaYzAGQC+YHqM=";
|
||||
hash = "sha256-3Z8LML2BTHAaNEg65YqYg0HyLNG1HwHpztGfSY1VGyw=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
||||
@@ -15,18 +15,18 @@
|
||||
}:
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "tsukimi";
|
||||
version = "0.18.0";
|
||||
version = "0.18.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "tsukinaha";
|
||||
repo = "tsukimi";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-JHB1D94ymVjP3PEHZ4fTT4c6VOEkFgSdpanzs1AzJUc=";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-S4+mhFgBNSl2h8dk0izNyCw9//u3CaLGd/shCSWmN3M=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
useFetchCargoVendor = true;
|
||||
cargoHash = "sha256-Gh9CPQ73+EpwZTixgQpV4rSwZnedVHQwZRlLQXr8EUo=";
|
||||
cargoHash = "sha256-zVzDpZRni/0AyGE5ahBH7hm8Ovyt+Fn6x1NOHkyI0v8=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
|
||||
@@ -11,15 +11,16 @@
|
||||
pkg-config,
|
||||
python3,
|
||||
stdenv,
|
||||
udev,
|
||||
wrapGAppsHook3,
|
||||
}:
|
||||
|
||||
let
|
||||
version = "0.1.0";
|
||||
version = "0.2.0";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://github.com/carrotIndustries/usbkvm/releases/download/v${version}/usbkvm-v${version}.tar.gz";
|
||||
sha256 = "sha256-OuZ7+IjsvK7/PaiTRwssaQFJDFWJ8HX+kqV13CUyTZA=";
|
||||
sha256 = "sha256-ng6YpaN7sKEBPJcJAm0kcYtT++orweWRx6uOZFnOGG8=";
|
||||
};
|
||||
|
||||
ms-tools-lib = buildGoModule {
|
||||
@@ -51,6 +52,7 @@ stdenv.mkDerivation {
|
||||
ninja
|
||||
makeWrapper
|
||||
wrapGAppsHook3
|
||||
udev
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
@@ -71,6 +73,11 @@ stdenv.mkDerivation {
|
||||
--replace-fail "@MSLIB_H_PRECOMPILED@" "${ms-tools-lib}/mslib.h"
|
||||
'';
|
||||
|
||||
# Install udev rules in this package's out path:
|
||||
mesonFlags = [
|
||||
"-Dudevrulesdir=lib/udev/rules.d"
|
||||
];
|
||||
|
||||
postFixup =
|
||||
let
|
||||
GST_PLUGIN_PATH = lib.makeSearchPathOutput "lib" "lib/gstreamer-1.0" [
|
||||
@@ -83,11 +90,6 @@ stdenv.mkDerivation {
|
||||
--prefix GST_PLUGIN_PATH : "${GST_PLUGIN_PATH}"
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
mkdir -p $out/lib/udev/rules.d/
|
||||
cp ../70-usbkvm.rules $out/lib/udev/rules.d/
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/carrotIndustries/usbkvm";
|
||||
description = "An open-source USB KVM (Keyboard, Video and Mouse) adapter";
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
buildGoModule,
|
||||
fetchFromGitHub,
|
||||
pkg-config,
|
||||
vips,
|
||||
gobject-introspection,
|
||||
wrapGAppsHook4,
|
||||
gtk4,
|
||||
@@ -12,16 +13,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "walker";
|
||||
version = "0.9.0";
|
||||
version = "0.11.16";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "abenz1267";
|
||||
repo = "walker";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-nYC6KoLsmMf6uJ74Y2zvDU5wdgeOU9aZb/4zGlnWOJM=";
|
||||
hash = "sha256-9cZ+cJcBiZA0HU8YU7+DmOPmbeFtuiqmyBEosVxCADQ=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-nc/WKBhUxhs1aNUg/GM7vhrKd7FrUdl2uKp7MX2VCdE=";
|
||||
vendorHash = "sha256-urAtl2aSuNw7UVnuacSACUE8PCwAsrRQbuMb7xItjao=";
|
||||
subPackages = [ "cmd/walker.go" ];
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
@@ -34,6 +35,7 @@ buildGoModule rec {
|
||||
|
||||
buildInputs = [
|
||||
gtk4
|
||||
vips
|
||||
gtk4-layer-shell
|
||||
];
|
||||
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
{
|
||||
fetchFromGitHub,
|
||||
lib,
|
||||
libxkbcommon,
|
||||
nix-update-script,
|
||||
openxr-loader,
|
||||
pkg-config,
|
||||
rustPlatform,
|
||||
shaderc,
|
||||
vulkan-loader,
|
||||
}:
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "xrizer";
|
||||
version = "0.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Supreeeme";
|
||||
repo = "xrizer";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-0szkc/EURm4N0gl+tSFhLeQTYPX7ZgBHXwpP11Ju8Ng=";
|
||||
};
|
||||
|
||||
useFetchCargoVendor = true;
|
||||
cargoHash = "sha256-xyiEKPnko9mpEsUfl7wuAAsobRTwBHhZuKuU/HP4Ujs=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
rustPlatform.bindgenHook
|
||||
shaderc
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
libxkbcommon
|
||||
vulkan-loader
|
||||
openxr-loader
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace Cargo.toml \
|
||||
--replace-fail 'features = ["static"]' 'features = ["linked"]'
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
mkdir -p $out/lib/xrizer/bin/linux64
|
||||
ln -s "$out/lib/libxrizer.so" "$out/lib/xrizer/bin/linux64/vrclient.so"
|
||||
'';
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = {
|
||||
description = "XR-ize your favorite OpenVR games";
|
||||
homepage = "https://github.com/Supreeeme/xrizer";
|
||||
license = lib.licenses.gpl3Only;
|
||||
maintainers = with lib.maintainers; [ Scrumplex ];
|
||||
# TODO: support more systems
|
||||
# To do so, we need to map systems to the format openvr expects.
|
||||
# i.e. x86_64-linux -> linux64, aarch64-linux -> linuxarm64
|
||||
platforms = [ "x86_64-linux" ];
|
||||
};
|
||||
}
|
||||
@@ -21,25 +21,25 @@ let
|
||||
versionMap = {
|
||||
"2.10" = {
|
||||
version = "2.10.7";
|
||||
sha256 = "koMRmRb2u3cU4HaihAzPItWIGbNVIo7RWRrm92kp8RE=";
|
||||
hash = "sha256-koMRmRb2u3cU4HaihAzPItWIGbNVIo7RWRrm92kp8RE=";
|
||||
pname = "scala_2_10";
|
||||
};
|
||||
|
||||
"2.11" = {
|
||||
version = "2.11.12";
|
||||
sha256 = "sR19M2mcpPYLw7K2hY/ZU+PeK4UiyUP0zaS2dDFhlqg=";
|
||||
hash = "sha256-sR19M2mcpPYLw7K2hY/ZU+PeK4UiyUP0zaS2dDFhlqg=";
|
||||
pname = "scala_2_11";
|
||||
};
|
||||
|
||||
"2.12" = {
|
||||
version = "2.12.18";
|
||||
sha256 = "naIJCET+YPrbXln39F9aU3DBdnjcn7PYMmhDxETOA5g=";
|
||||
hash = "sha256-naIJCET+YPrbXln39F9aU3DBdnjcn7PYMmhDxETOA5g=";
|
||||
pname = "scala_2_12";
|
||||
};
|
||||
|
||||
"2.13" = {
|
||||
version = "2.13.12";
|
||||
sha256 = "r+fm+1njyIRX6Z9wGHMOUvuifI0V49cVT3KWggbKhxk=";
|
||||
version = "2.13.15";
|
||||
hash = "sha256-jXIZ0q2IHIHPdwmp5JU05s4S0Bft4Uc+r9Hpuyh8ObE=";
|
||||
pname = "scala_2_13";
|
||||
};
|
||||
};
|
||||
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
|
||||
name = "scala-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
inherit sha256;
|
||||
inherit hash;
|
||||
url = "https://www.scala-lang.org/files/archive/scala-${version}.tgz";
|
||||
};
|
||||
|
||||
|
||||
@@ -11,16 +11,17 @@
|
||||
version ? null,
|
||||
}:
|
||||
|
||||
let
|
||||
# version of veriT that works with SMTCoq
|
||||
veriT' = veriT.overrideAttrs (oA: {
|
||||
src = fetchurl {
|
||||
url = "https://www.lri.fr/~keller/Documents-recherche/Smtcoq/veriT9f48a98.tar.gz";
|
||||
sha256 = "sha256-Pe46PxQVHWwWwx5Ei4Bl95A0otCiXZuUZ2nXuZPYnhY=";
|
||||
};
|
||||
meta.broken = false;
|
||||
});
|
||||
in
|
||||
# Broken since https://github.com/NixOS/nixpkgs/pull/354627, temporarily disactivated
|
||||
# let
|
||||
# # version of veriT that works with SMTCoq
|
||||
# veriT' = veriT.overrideAttrs (oA: {
|
||||
# src = fetchurl {
|
||||
# url = "https://www.lri.fr/~keller/Documents-recherche/Smtcoq/veriT9f48a98.tar.gz";
|
||||
# sha256 = "sha256-Pe46PxQVHWwWwx5Ei4Bl95A0otCiXZuUZ2nXuZPYnhY=";
|
||||
# };
|
||||
# meta.broken = false;
|
||||
# });
|
||||
# in
|
||||
|
||||
mkCoqDerivation {
|
||||
pname = "smtcoq";
|
||||
@@ -79,7 +80,7 @@ mkCoqDerivation {
|
||||
propagatedBuildInputs =
|
||||
[
|
||||
cvc5
|
||||
veriT'
|
||||
# veriT' # c.f. comment above
|
||||
zchaff
|
||||
stdlib
|
||||
]
|
||||
|
||||
@@ -1,48 +0,0 @@
|
||||
diff --git a/src/lib/prov/commoncrypto/commoncrypto_block.cpp b/src/lib/prov/commoncrypto/commoncrypto_block.cpp
|
||||
index a07fe118d..f059ee497 100644
|
||||
--- a/src/lib/prov/commoncrypto/commoncrypto_block.cpp
|
||||
+++ b/src/lib/prov/commoncrypto/commoncrypto_block.cpp
|
||||
@@ -11,6 +11,7 @@
|
||||
#include <botan/hex.h>
|
||||
#include <botan/internal/commoncrypto_utils.h>
|
||||
|
||||
+#include <CommonCrypto/CommonCryptoError.h>
|
||||
#include <CommonCrypto/CommonCrypto.h>
|
||||
|
||||
namespace Botan {
|
||||
diff --git a/src/lib/prov/commoncrypto/commoncrypto_hash.cpp b/src/lib/prov/commoncrypto/commoncrypto_hash.cpp
|
||||
index 1fb79c419..faf9575c2 100644
|
||||
--- a/src/lib/prov/commoncrypto/commoncrypto_hash.cpp
|
||||
+++ b/src/lib/prov/commoncrypto/commoncrypto_hash.cpp
|
||||
@@ -11,6 +11,7 @@
|
||||
#include <botan/internal/stl_util.h>
|
||||
#include <unordered_map>
|
||||
|
||||
+#include <CommonCrypto/CommonCryptoError.h>
|
||||
#include <CommonCrypto/CommonCrypto.h>
|
||||
|
||||
namespace Botan {
|
||||
diff --git a/src/lib/prov/commoncrypto/commoncrypto_utils.h b/src/lib/prov/commoncrypto/commoncrypto_utils.h
|
||||
index b1c7411fd..9becab2d1 100644
|
||||
--- a/src/lib/prov/commoncrypto/commoncrypto_utils.h
|
||||
+++ b/src/lib/prov/commoncrypto/commoncrypto_utils.h
|
||||
@@ -10,6 +10,7 @@
|
||||
|
||||
#include <botan/sym_algo.h>
|
||||
|
||||
+#include <CommonCrypto/CommonCryptoError.h>
|
||||
#include <CommonCrypto/CommonCrypto.h>
|
||||
|
||||
namespace Botan {
|
||||
diff --git a/src/lib/rng/system_rng/system_rng.cpp b/src/lib/rng/system_rng/system_rng.cpp
|
||||
index b2f7b4c45..f4933b1e3 100644
|
||||
--- a/src/lib/rng/system_rng/system_rng.cpp
|
||||
+++ b/src/lib/rng/system_rng/system_rng.cpp
|
||||
@@ -20,6 +20,7 @@
|
||||
#include <bcrypt.h>
|
||||
#include <windows.h>
|
||||
#elif defined(BOTAN_TARGET_OS_HAS_CCRANDOM)
|
||||
+ #include <CommonCrypto/CommonCryptoError.h>
|
||||
#include <CommonCrypto/CommonRandom.h>
|
||||
#elif defined(BOTAN_TARGET_OS_HAS_ARC4RANDOM)
|
||||
#include <stdlib.h>
|
||||
@@ -124,8 +124,6 @@ in
|
||||
botan3 = common {
|
||||
version = "3.6.1";
|
||||
hash = "sha256-fLhXXYjSMsdxdHadf54ku0REQWBYWYbuvWbnScuakIk=";
|
||||
# this patch fixes build errors on MacOS with SDK 10.12, recheck to remove this again
|
||||
patches = lib.optionals stdenv.hostPlatform.isDarwin [ ./botan3-macos.patch ];
|
||||
};
|
||||
|
||||
botan2 = common {
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
{
|
||||
lib,
|
||||
mlx,
|
||||
buildDunePackage,
|
||||
ppxlib,
|
||||
merlin-lib,
|
||||
cppo,
|
||||
csexp,
|
||||
menhir,
|
||||
odoc,
|
||||
}:
|
||||
buildDunePackage {
|
||||
pname = "ocamlmerlin-mlx";
|
||||
|
||||
inherit (mlx) version src;
|
||||
|
||||
minimalOCamlVersion = "4.14";
|
||||
|
||||
buildInputs = [
|
||||
ppxlib
|
||||
merlin-lib
|
||||
csexp
|
||||
menhir
|
||||
odoc
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
cppo
|
||||
];
|
||||
|
||||
meta = {
|
||||
description = "Merlin support for MLX OCaml dialect";
|
||||
homepage = "https://github.com/ocaml-mlx/mlx";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = [ lib.maintainers.Denommus ];
|
||||
mainProgram = "ocamlmerlin-mlx";
|
||||
};
|
||||
}
|
||||
@@ -9,7 +9,7 @@ buildDunePackage rec {
|
||||
pname = "odds";
|
||||
version = "1.2";
|
||||
|
||||
minimalOcamlVersion = "5.0.0";
|
||||
minimalOCamlVersion = "5.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "raphael-proust";
|
||||
@@ -18,7 +18,7 @@ buildDunePackage rec {
|
||||
hash = "sha256-tPDowkpsJQKCoeuXOb9zPORoudUvkRBZ3OzkH2QE2zg=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
buildInputs = [
|
||||
cmdliner
|
||||
];
|
||||
|
||||
|
||||
@@ -6,11 +6,11 @@
|
||||
|
||||
buildOctavePackage rec {
|
||||
pname = "matgeom";
|
||||
version = "1.2.3";
|
||||
version = "1.2.4";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
|
||||
sha256 = "12q66dy4ninhki3jslzcamfblcb3cdkfbbzn3a5har1s212lsfiw";
|
||||
sha256 = "sha256-azRPhwMVvydCyojA/rXD2og1tPTL0vii15OveYQF+SA=";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "adafruit-platformdetect";
|
||||
version = "3.75.0";
|
||||
version = "3.76.1";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
@@ -16,7 +16,7 @@ buildPythonPackage rec {
|
||||
src = fetchPypi {
|
||||
pname = "adafruit_platformdetect";
|
||||
inherit version;
|
||||
hash = "sha256-5Awvnzw0tgZhRXVshTOuzerdORJ+5QCH3PDB7pbjCB0=";
|
||||
hash = "sha256-xFoqymbYEs7L7bP0/psCz44SZO7yCbMArm9GfLo25Lg=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools-scm ];
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "aranet4";
|
||||
version = "2.4.0";
|
||||
version = "2.5.0";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
@@ -20,7 +20,7 @@ buildPythonPackage rec {
|
||||
owner = "Anrijs";
|
||||
repo = "Aranet4-Python";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-PdEOEVHri9bhsRFtSqZIaTJ7perD6nZcYoF2sDrWXqg=";
|
||||
hash = "sha256-IDMWRFxasmZ5pmd36cgss8vV0eVOIzu08dfJHVT+QUQ=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "pynmeagps";
|
||||
version = "1.0.43";
|
||||
version = "1.0.44";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.9";
|
||||
@@ -19,7 +19,7 @@ buildPythonPackage rec {
|
||||
owner = "semuconsulting";
|
||||
repo = "pynmeagps";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-U5AI6iQiMvlCfL0SMAl0PkwC/orCr57royWvHKvWpAI=";
|
||||
hash = "sha256-AnLQJueJYhoOzTjC1hKyo4UFL//pDyKETvLNA4pKp7A=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "tencentcloud-sdk-python";
|
||||
version = "3.0.1295";
|
||||
version = "3.0.1296";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.9";
|
||||
@@ -19,7 +19,7 @@ buildPythonPackage rec {
|
||||
owner = "TencentCloud";
|
||||
repo = "tencentcloud-sdk-python";
|
||||
tag = version;
|
||||
hash = "sha256-mbrOk+aeeVCfNHCMvU9p1/P3X1Z+n8XIsNfKnOOZ0Q4=";
|
||||
hash = "sha256-iTcI/pNCcQamVuDYIjv60KR4CBwBRVwZJ+VAJqR1keM=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
@@ -22,7 +22,7 @@ let
|
||||
);
|
||||
ihaskellSh = writeScriptBin "ihaskell-notebook" ''
|
||||
#! ${stdenv.shell}
|
||||
export GHC_PACKAGE_PATH="$(echo ${ihaskellEnv}/lib/*/package.conf.d| tr ' ' ':'):$GHC_PACKAGE_PATH"
|
||||
export GHC_PACKAGE_PATH="$(${ihaskellEnv}/bin/ghc --print-global-package-db):$GHC_PACKAGE_PATH"
|
||||
export PATH="${
|
||||
lib.makeBinPath ([
|
||||
ihaskellEnv
|
||||
|
||||
@@ -12,8 +12,8 @@ let
|
||||
hash = "sha256-2qJ6C1QbxjUyP/lsLe2ZVGf/n+bWn/ZwIVWKqa2dzDY=";
|
||||
};
|
||||
"9" = {
|
||||
version = "9.15.2";
|
||||
hash = "sha256-AiMJuzE1kUK2W/qIngQG0u69Ws//ykfmlErPKdnWpms=";
|
||||
version = "9.15.3";
|
||||
hash = "sha256-wdpDcnzLwe1Cr/T9a9tLHpHmWoGObv/1skD78HC6Tq8=";
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -197,12 +197,12 @@ in rec {
|
||||
|
||||
dracula = mkTmuxPlugin rec {
|
||||
pluginName = "dracula";
|
||||
version = "2.3.0";
|
||||
version = "3.0.0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "dracula";
|
||||
repo = "tmux";
|
||||
rev = "v${version}";
|
||||
sha256 = "IrNDBRopg9lgN5AfeXbhhh+uXiWQD2bjS1sNOgOJsu4=";
|
||||
hash = "sha256-VY4PyaQRwTc6LWhPJg4inrQf5K8+bp0+eqRhR7+Iexk=";
|
||||
};
|
||||
meta = with lib; {
|
||||
homepage = "https://draculatheme.com/tmux";
|
||||
|
||||
@@ -14,12 +14,12 @@ let
|
||||
# kernel config in the xanmod version commit
|
||||
variants = {
|
||||
lts = {
|
||||
version = "6.6.68";
|
||||
hash = "sha256-fuPJgbDJ2PLB74fy/WFnhGdTEKJMeNwsbWm6RVM4Jes=";
|
||||
version = "6.6.69";
|
||||
hash = "sha256-ZU0vVea8CCR41Sc+bbM4GOnDsFUpTvBvCEHSHLmWHds=";
|
||||
};
|
||||
main = {
|
||||
version = "6.12.7";
|
||||
hash = "sha256-sM9XINKBGRcO29o3kEIKM03t/XojG9nYLirQSBii8Y4=";
|
||||
version = "6.12.8";
|
||||
hash = "sha256-rEzSM71ACrBclunnJZ4qaEhPGIKCvyLVpeHgsiDxMu4=";
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -3,24 +3,27 @@
|
||||
fetchFromGitHub,
|
||||
buildHomeAssistantComponent,
|
||||
aiofiles,
|
||||
nix-update-script,
|
||||
}:
|
||||
|
||||
buildHomeAssistantComponent rec {
|
||||
owner = "hultenvp";
|
||||
domain = "solis";
|
||||
version = "3.7.2";
|
||||
version = "3.8.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "hultenvp";
|
||||
repo = "solis-sensor";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-8+KzZCfBYvXO73SrMXLGCUjecxKn49hz0wCXWCUBULU=";
|
||||
hash = "sha256-lExwqJj70iNzjZyTw5udcWx6FB95aqZh7cYtXHWMHK0=";
|
||||
};
|
||||
|
||||
dependencies = [ aiofiles ];
|
||||
|
||||
dontCheckManifest = true; # aiofiles version constraint mismatch
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = with lib; {
|
||||
description = "Home Assistant integration for the SolisCloud PV Monitoring portal via SolisCloud API";
|
||||
changelog = "https://github.com/hultenvp/solis-sensor/releases/tag/v${version}";
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# frozen_string_literal: true
|
||||
source "https://rubygems.org"
|
||||
|
||||
gem "metasploit-framework", git: "https://github.com/rapid7/metasploit-framework", ref: "refs/tags/6.4.42"
|
||||
gem "metasploit-framework", git: "https://github.com/rapid7/metasploit-framework", ref: "refs/tags/6.4.43"
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
GIT
|
||||
remote: https://github.com/rapid7/metasploit-framework
|
||||
revision: 02397587c3a571a685c43226719c77b3194837cd
|
||||
ref: refs/tags/6.4.42
|
||||
revision: 726e819f87e3022dc90232087bf30edb0d149ba5
|
||||
ref: refs/tags/6.4.43
|
||||
specs:
|
||||
metasploit-framework (6.4.42)
|
||||
metasploit-framework (6.4.43)
|
||||
aarch64
|
||||
abbrev
|
||||
actionpack (~> 7.0.0)
|
||||
|
||||
@@ -18,13 +18,13 @@ let
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "metasploit-framework";
|
||||
version = "6.4.42";
|
||||
version = "6.4.43";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "rapid7";
|
||||
repo = "metasploit-framework";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-PsYA29tEhb++Uo0Mh2sAeAUfy51+x7NGNWrMYkj2rrE=";
|
||||
hash = "sha256-1zUt6nInDUIY97fBJa0dQ/hD4WZ1v5LXYdPQhnYKlYw=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -734,12 +734,12 @@
|
||||
platforms = [ ];
|
||||
source = {
|
||||
fetchSubmodules = false;
|
||||
rev = "02397587c3a571a685c43226719c77b3194837cd";
|
||||
sha256 = "1cdfyr465k3a6m3b7ivykp5iy1bq01mqf34daazbz1a4vgdh1iiy";
|
||||
rev = "726e819f87e3022dc90232087bf30edb0d149ba5";
|
||||
sha256 = "134m19v8dl6kc7br5gvmcvhl7y233nnjbhdpywc44397fbm2sdfp";
|
||||
type = "git";
|
||||
url = "https://github.com/rapid7/metasploit-framework";
|
||||
};
|
||||
version = "6.4.42";
|
||||
version = "6.4.43";
|
||||
};
|
||||
metasploit-model = {
|
||||
groups = [ "default" ];
|
||||
|
||||
@@ -8,16 +8,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "mdbook-mermaid";
|
||||
version = "0.14.0";
|
||||
version = "0.14.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "badboy";
|
||||
repo = pname;
|
||||
tag = "v${version}";
|
||||
hash = "sha256-elDKxtGMLka9Ss5CNnzw32ndxTUliNUgPXp7e4KUmBo=";
|
||||
hash = "sha256-hqz2zUdDZjbe3nq4YpL68XJ64qpbjANag9S2uAM5nXg=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-BnbllOsidqDEfKs0pd6AzFjzo51PKm9uFSwmOGTW3ug=";
|
||||
cargoHash = "sha256-KrvrmodsoAvNxjJqdKTXva32dtlKINPGHwfxcK1VDwY=";
|
||||
|
||||
buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [
|
||||
CoreServices
|
||||
|
||||
@@ -1371,6 +1371,8 @@ let
|
||||
|
||||
ocamline = callPackage ../development/ocaml-modules/ocamline { };
|
||||
|
||||
ocamlmerlin-mlx = callPackage ../development/ocaml-modules/mlx/ocamlmerlin-mlx.nix { };
|
||||
|
||||
ocamlmod = callPackage ../development/tools/ocaml/ocamlmod { };
|
||||
|
||||
ocamlnet = callPackage ../development/ocaml-modules/ocamlnet { };
|
||||
|
||||
Reference in New Issue
Block a user