diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index 13fcc20ef3f3..e5b51f01540d 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -14668,6 +14668,11 @@
githubId = 146413;
name = "Tobias Poschwatta";
};
+ poweredbypie = {
+ name = "poweredbypie";
+ github = "poweredbypie";
+ githubId = 67135060;
+ };
PowerUser64 = {
email = "blakelysnorth@gmail.com";
github = "PowerUser64";
diff --git a/maintainers/team-list.nix b/maintainers/team-list.nix
index b872142c313c..9885c9cfcf99 100644
--- a/maintainers/team-list.nix
+++ b/maintainers/team-list.nix
@@ -429,6 +429,7 @@ with lib.maintainers; {
cleeyv
ryantm
lassulus
+ yayayayaka
];
scope = "Maintain Jitsi.";
shortName = "Jitsi";
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index 674707ec69e7..820ce54ddeb6 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -971,6 +971,7 @@
./services/networking/iwd.nix
./services/networking/jibri/default.nix
./services/networking/jicofo.nix
+ ./services/networking/jigasi.nix
./services/networking/jitsi-videobridge.nix
./services/networking/jool.nix
./services/networking/kea.nix
diff --git a/nixos/modules/services/misc/tandoor-recipes.nix b/nixos/modules/services/misc/tandoor-recipes.nix
index 2d7d29b2e717..6c51a9bb8555 100644
--- a/nixos/modules/services/misc/tandoor-recipes.nix
+++ b/nixos/modules/services/misc/tandoor-recipes.nix
@@ -12,7 +12,7 @@ let
DEBUG_TOOLBAR = "0";
MEDIA_ROOT = "/var/lib/tandoor-recipes";
} // optionalAttrs (config.time.timeZone != null) {
- TIMEZONE = config.time.timeZone;
+ TZ = config.time.timeZone;
} // (
lib.mapAttrs (_: toString) cfg.extraConfig
);
diff --git a/nixos/modules/services/networking/jigasi.nix b/nixos/modules/services/networking/jigasi.nix
new file mode 100644
index 000000000000..8d2d25c6edfc
--- /dev/null
+++ b/nixos/modules/services/networking/jigasi.nix
@@ -0,0 +1,237 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+ cfg = config.services.jigasi;
+ homeDirName = "jigasi-home";
+ stateDir = "/tmp";
+ sipCommunicatorPropertiesFile = "${stateDir}/${homeDirName}/sip-communicator.properties";
+ sipCommunicatorPropertiesFileUnsubstituted = "${pkgs.jigasi}/etc/jitsi/jigasi/sip-communicator.properties";
+in
+{
+ options.services.jigasi = with types; {
+ enable = mkEnableOption "Jitsi Gateway to SIP - component of Jitsi Meet";
+
+ xmppHost = mkOption {
+ type = str;
+ example = "localhost";
+ description = ''
+ Hostname of the XMPP server to connect to.
+ '';
+ };
+
+ xmppDomain = mkOption {
+ type = nullOr str;
+ example = "meet.example.org";
+ description = ''
+ Domain name of the XMMP server to which to connect as a component.
+
+ If null, is used.
+ '';
+ };
+
+ componentPasswordFile = mkOption {
+ type = str;
+ example = "/run/keys/jigasi-component";
+ description = ''
+ Path to file containing component secret.
+ '';
+ };
+
+ userName = mkOption {
+ type = str;
+ default = "callcontrol";
+ description = ''
+ User part of the JID for XMPP user connection.
+ '';
+ };
+
+ userDomain = mkOption {
+ type = str;
+ example = "internal.meet.example.org";
+ description = ''
+ Domain part of the JID for XMPP user connection.
+ '';
+ };
+
+ userPasswordFile = mkOption {
+ type = str;
+ example = "/run/keys/jigasi-user";
+ description = ''
+ Path to file containing password for XMPP user connection.
+ '';
+ };
+
+ bridgeMuc = mkOption {
+ type = str;
+ example = "jigasibrewery@internal.meet.example.org";
+ description = ''
+ JID of the internal MUC used to communicate with Videobridges.
+ '';
+ };
+
+ defaultJvbRoomName = mkOption {
+ type = str;
+ default = "";
+ example = "siptest";
+ description = ''
+ Name of the default JVB room that will be joined if no special header is included in SIP invite.
+ '';
+ };
+
+ environmentFile = mkOption {
+ type = types.nullOr types.path;
+ default = null;
+ description = ''
+ File containing environment variables to be passed to the jigasi service,
+ in which secret tokens can be specified securely by defining values for
+ JIGASI_SIPUSER,
+ JIGASI_SIPPWD,
+ JIGASI_SIPSERVER and
+ JIGASI_SIPPORT.
+ '';
+ };
+
+ config = mkOption {
+ type = attrsOf str;
+ default = { };
+ example = literalExample ''
+ {
+ "org.jitsi.jigasi.auth.URL" = "XMPP:jitsi-meet.example.com";
+ }
+ '';
+ description = ''
+ Contents of the sip-communicator.properties configuration file for jigasi.
+ '';
+ };
+ };
+
+ config = mkIf cfg.enable {
+ services.jicofo.config = {
+ "org.jitsi.jicofo.jigasi.BREWERY" = "${cfg.bridgeMuc}";
+ };
+
+ services.jigasi.config = mapAttrs (_: v: mkDefault v) {
+ "org.jitsi.jigasi.BRIDGE_MUC" = cfg.bridgeMuc;
+ };
+
+ users.groups.jitsi-meet = {};
+
+ systemd.services.jigasi = let
+ jigasiProps = {
+ "-Dnet.java.sip.communicator.SC_HOME_DIR_LOCATION" = "${stateDir}";
+ "-Dnet.java.sip.communicator.SC_HOME_DIR_NAME" = "${homeDirName}";
+ "-Djava.util.logging.config.file" = "${pkgs.jigasi}/etc/jitsi/jigasi/logging.properties";
+ };
+ in
+ {
+ description = "Jitsi Gateway to SIP";
+ wantedBy = [ "multi-user.target" ];
+ after = [ "network.target" ];
+
+ preStart = ''
+ [ -f "${sipCommunicatorPropertiesFile}" ] && rm -f "${sipCommunicatorPropertiesFile}"
+ mkdir -p "$(dirname ${sipCommunicatorPropertiesFile})"
+ temp="${sipCommunicatorPropertiesFile}.unsubstituted"
+
+ export DOMAIN_BASE="${cfg.xmppDomain}"
+ export JIGASI_XMPP_PASSWORD=$(cat "${cfg.userPasswordFile}")
+ export JIGASI_DEFAULT_JVB_ROOM_NAME="${cfg.defaultJvbRoomName}"
+
+ # encode the credentials to base64
+ export JIGASI_SIPPWD=$(echo -n "$JIGASI_SIPPWD" | base64 -w 0)
+ export JIGASI_XMPP_PASSWORD_BASE64=$(cat "${cfg.userPasswordFile}" | base64 -w 0)
+
+ cp "${sipCommunicatorPropertiesFileUnsubstituted}" "$temp"
+ chmod 644 "$temp"
+ cat <>"$temp"
+ net.java.sip.communicator.impl.protocol.sip.acc1403273890647.SERVER_PORT=$JIGASI_SIPPORT
+ net.java.sip.communicator.impl.protocol.sip.acc1403273890647.PREFERRED_TRANSPORT=udp
+ EOF
+ chmod 444 "$temp"
+
+ # Replace <<$VAR_NAME>> from example config to $VAR_NAME for environment substitution
+ sed -i -E \
+ 's/<<([^>]+)>>/\$\1/g' \
+ "$temp"
+
+ sed -i \
+ 's|\(net\.java\.sip\.communicator\.impl\.protocol\.jabber\.acc-xmpp-1\.PASSWORD=\).*|\1\$JIGASI_XMPP_PASSWORD_BASE64|g' \
+ "$temp"
+
+ sed -i \
+ 's|\(#\)\(org.jitsi.jigasi.DEFAULT_JVB_ROOM_NAME=\).*|\2\$JIGASI_DEFAULT_JVB_ROOM_NAME|g' \
+ "$temp"
+
+ ${pkgs.envsubst}/bin/envsubst \
+ -o "${sipCommunicatorPropertiesFile}" \
+ -i "$temp"
+
+ # Set the brewery room name
+ sed -i \
+ 's|\(net\.java\.sip\.communicator\.impl\.protocol\.jabber\.acc-xmpp-1\.BREWERY=\).*|\1${cfg.bridgeMuc}|g' \
+ "${sipCommunicatorPropertiesFile}"
+ sed -i \
+ 's|\(org\.jitsi\.jigasi\.ALLOWED_JID=\).*|\1${cfg.bridgeMuc}|g' \
+ "${sipCommunicatorPropertiesFile}"
+
+
+ # Disable certificate verification for self-signed certificates
+ sed -i \
+ 's|\(# \)\(net.java.sip.communicator.service.gui.ALWAYS_TRUST_MODE_ENABLED=true\)|\2|g' \
+ "${sipCommunicatorPropertiesFile}"
+ '';
+
+ restartTriggers = [
+ config.environment.etc."jitsi/jigasi/sip-communicator.properties".source
+ ];
+ environment.JAVA_SYS_PROPS = concatStringsSep " " (mapAttrsToList (k: v: "${k}=${toString v}") jigasiProps);
+
+ script = ''
+ ${pkgs.jigasi}/bin/jigasi \
+ --host="${cfg.xmppHost}" \
+ --domain="${if cfg.xmppDomain == null then cfg.xmppHost else cfg.xmppDomain}" \
+ --secret="$(cat ${cfg.componentPasswordFile})" \
+ --user_name="${cfg.userName}" \
+ --user_domain="${cfg.userDomain}" \
+ --user_password="$(cat ${cfg.userPasswordFile})" \
+ --configdir="${stateDir}" \
+ --configdirname="${homeDirName}"
+ '';
+
+ serviceConfig = {
+ Type = "exec";
+
+ DynamicUser = true;
+ User = "jigasi";
+ Group = "jitsi-meet";
+
+ CapabilityBoundingSet = "";
+ NoNewPrivileges = true;
+ ProtectSystem = "strict";
+ ProtectHome = true;
+ PrivateTmp = true;
+ PrivateDevices = true;
+ ProtectHostname = true;
+ ProtectKernelTunables = true;
+ ProtectKernelModules = true;
+ ProtectControlGroups = true;
+ RestrictAddressFamilies = [ "AF_INET" "AF_INET6" "AF_UNIX" ];
+ RestrictNamespaces = true;
+ LockPersonality = true;
+ RestrictRealtime = true;
+ RestrictSUIDSGID = true;
+ StateDirectory = baseNameOf stateDir;
+ EnvironmentFile = cfg.environmentFile;
+ };
+ };
+
+ environment.etc."jitsi/jigasi/sip-communicator.properties".source =
+ mkDefault "${sipCommunicatorPropertiesFile}";
+ environment.etc."jitsi/jigasi/logging.properties".source =
+ mkDefault "${stateDir}/logging.properties-journal";
+ };
+
+ meta.maintainers = lib.teams.jitsi.members;
+}
diff --git a/nixos/modules/services/web-apps/jitsi-meet.nix b/nixos/modules/services/web-apps/jitsi-meet.nix
index 0c0eb66e65b7..c4505534d635 100644
--- a/nixos/modules/services/web-apps/jitsi-meet.nix
+++ b/nixos/modules/services/web-apps/jitsi-meet.nix
@@ -35,6 +35,7 @@ let
domain = cfg.hostName;
muc = "conference.${cfg.hostName}";
focus = "focus.${cfg.hostName}";
+ jigasi = "jigasi.${cfg.hostName}";
};
bosh = "//${cfg.hostName}/http-bind";
websocket = "wss://${cfg.hostName}/xmpp-websocket";
@@ -145,6 +146,16 @@ in
'';
};
+ jigasi.enable = mkOption {
+ type = bool;
+ default = false;
+ description = ''
+ Whether to enable jigasi instance and configure it to connect to Prosody.
+
+ Additional configuration is possible with .
+ '';
+ };
+
nginx.enable = mkOption {
type = bool;
default = true;
@@ -224,7 +235,7 @@ in
roomDefaultPublicJids = true;
extraConfig = ''
storage = "memory"
- admins = { "focus@auth.${cfg.hostName}", "jvb@auth.${cfg.hostName}" }
+ admins = { "focus@auth.${cfg.hostName}", "jvb@auth.${cfg.hostName}", "jigasi@auth.${cfg.hostName}" }
'';
#-- muc_room_cache_size = 1000
}
@@ -263,6 +274,9 @@ in
Component "focus.${cfg.hostName}" "client_proxy"
target_address = "focus@auth.${cfg.hostName}"
+ Component "jigasi.${cfg.hostName}" "client_proxy"
+ target_address = "jigasi@auth.${cfg.hostName}"
+
Component "speakerstats.${cfg.hostName}" "speakerstats_component"
muc_component = "conference.${cfg.hostName}"
@@ -356,7 +370,10 @@ in
${config.services.prosody.package}/bin/prosodyctl mod_roster_command subscribe focus.${cfg.hostName} focus@auth.${cfg.hostName}
${config.services.prosody.package}/bin/prosodyctl register jibri auth.${cfg.hostName} "$(cat /var/lib/jitsi-meet/jibri-auth-secret)"
${config.services.prosody.package}/bin/prosodyctl register recorder recorder.${cfg.hostName} "$(cat /var/lib/jitsi-meet/jibri-recorder-secret)"
+ '' + optionalString cfg.jigasi.enable ''
+ ${config.services.prosody.package}/bin/prosodyctl register jigasi auth.${cfg.hostName} "$(cat /var/lib/jitsi-meet/jigasi-user-secret)"
'';
+
serviceConfig = {
EnvironmentFile = [ "/var/lib/jitsi-meet/secrets-env" ];
SupplementaryGroups = [ "jitsi-meet" ];
@@ -371,13 +388,13 @@ in
systemd.services.jitsi-meet-init-secrets = {
wantedBy = [ "multi-user.target" ];
- before = [ "jicofo.service" "jitsi-videobridge2.service" ] ++ (optional cfg.prosody.enable "prosody.service");
+ before = [ "jicofo.service" "jitsi-videobridge2.service" ] ++ (optional cfg.prosody.enable "prosody.service") ++ (optional cfg.jigasi.enable "jigasi.service");
serviceConfig = {
Type = "oneshot";
};
script = let
- secrets = [ "jicofo-component-secret" "jicofo-user-secret" "jibri-auth-secret" "jibri-recorder-secret" ] ++ (optional (cfg.videobridge.passwordFile == null) "videobridge-secret");
+ secrets = [ "jicofo-component-secret" "jicofo-user-secret" "jibri-auth-secret" "jibri-recorder-secret" ] ++ (optionals cfg.jigasi.enable [ "jigasi-user-secret" "jigasi-component-secret" ]) ++ (optional (cfg.videobridge.passwordFile == null) "videobridge-secret");
in
''
cd /var/lib/jitsi-meet
@@ -391,6 +408,7 @@ in
# for easy access in prosody
echo "JICOFO_COMPONENT_SECRET=$(cat jicofo-component-secret)" > secrets-env
+ echo "JIGASI_COMPONENT_SECRET=$(cat jigasi-component-secret)" >> secrets-env
chown root:jitsi-meet secrets-env
chmod 640 secrets-env
''
@@ -592,6 +610,20 @@ in
stripFromRoomDomain = "conference.";
};
};
+
+ services.jigasi = mkIf cfg.jigasi.enable {
+ enable = true;
+ xmppHost = "localhost";
+ xmppDomain = cfg.hostName;
+ userDomain = "auth.${cfg.hostName}";
+ userName = "jigasi";
+ userPasswordFile = "/var/lib/jitsi-meet/jigasi-user-secret";
+ componentPasswordFile = "/var/lib/jitsi-meet/jigasi-component-secret";
+ bridgeMuc = "jigasibrewery@internal.${cfg.hostName}";
+ config = {
+ "org.jitsi.jigasi.ALWAYS_TRUST_MODE_ENABLED" = "true";
+ };
+ };
};
meta.doc = ./jitsi-meet.md;
diff --git a/pkgs/applications/editors/vscode/extensions/default.nix b/pkgs/applications/editors/vscode/extensions/default.nix
index 12a7c1768aed..d53c8af3fa68 100644
--- a/pkgs/applications/editors/vscode/extensions/default.nix
+++ b/pkgs/applications/editors/vscode/extensions/default.nix
@@ -3557,8 +3557,8 @@ let
mktplcRef = {
name = "uiua-vscode";
publisher = "uiua-lang";
- version = "0.0.25";
- sha256 = "sha256-qM+CLV8jWYkJWXZyELnR1H9pSWFifAOGqH+LgHr7nNA=";
+ version = "0.0.26";
+ sha256 = "sha256-EKWThidMgbd+a4Vw4SQo988ggVbCTnCakohvq3/mZQ0=";
};
meta = {
description = "VSCode language extension for Uiua";
diff --git a/pkgs/applications/misc/lttoolbox/default.nix b/pkgs/applications/misc/lttoolbox/default.nix
new file mode 100644
index 000000000000..25dbeba7d953
--- /dev/null
+++ b/pkgs/applications/misc/lttoolbox/default.nix
@@ -0,0 +1,65 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchpatch
+, autoconf
+, automake
+, pkg-config
+, utf8cpp
+, libtool
+, libxml2
+, icu
+, python3
+}:
+
+stdenv.mkDerivation rec {
+ pname = "lttoolbox";
+ version = "3.7.1";
+
+ src = fetchFromGitHub {
+ owner = "apertium";
+ repo = "lttoolbox";
+ rev = "refs/tags/v${version}";
+ hash = "sha256-3lHXKtwQSrMGQEGOGr27e3kB2qKkTFZcEzeAnIm89Rg=";
+ };
+
+ patches = [
+ # can be removed once the version goes past this commit
+ # https://github.com/apertium/lttoolbox/commit/e682fe18a96d5a865cfbd3e5661dbc7b3ace1821
+ (fetchpatch {
+ url = "https://github.com/apertium/lttoolbox/commit/e682fe18a96d5a865cfbd3e5661dbc7b3ace1821.patch";
+ hash = "sha256-VeP8Mv2KYxX+eVjIRw/jHbURaWN665+fiFaoT3VxAno=";
+ })
+ ];
+
+ nativeBuildInputs = [
+ autoconf
+ automake
+ pkg-config
+ utf8cpp
+ libtool
+ ];
+ buildInputs = [
+ libxml2
+ icu
+ ];
+ buildFlags = [
+ "CPPFLAGS=-I${utf8cpp}/include/utf8cpp"
+ ];
+ configurePhase = ''
+ ./autogen.sh --prefix $out
+ '';
+ doCheck = true;
+ checkPhase = ''
+ ${python3}/bin/python3 tests/run_tests.py
+ '';
+
+ meta = with lib; {
+ description = "Finite state compiler, processor and helper tools used by apertium";
+ homepage = "https://github.com/apertium/lttoolbox";
+ maintainers = with maintainers; [ onthestairs ];
+ changelog = "https://github.com/apertium/lttoolbox/releases/tag/v${version}";
+ license = licenses.gpl2;
+ platforms = platforms.linux ++ platforms.darwin;
+ };
+}
diff --git a/pkgs/applications/misc/tandoor-recipes/common.nix b/pkgs/applications/misc/tandoor-recipes/common.nix
index fe52c50a1f8e..40882205420a 100644
--- a/pkgs/applications/misc/tandoor-recipes/common.nix
+++ b/pkgs/applications/misc/tandoor-recipes/common.nix
@@ -1,15 +1,15 @@
{ lib, fetchFromGitHub }:
rec {
- version = "1.5.6";
+ version = "1.5.10";
src = fetchFromGitHub {
owner = "TandoorRecipes";
repo = "recipes";
rev = version;
- hash = "sha256-3sitrTaIRKmjx+5vWOQXE0/Gu0jJ8VCpOq2cZZVLrbk=";
+ hash = "sha256-CkqNPG57e76TT/vF9lscS6m2FbXOvOfqiT/9aM2Il9E=";
};
- yarnHash = "sha256-mZ8beCF+3mnpgKED0fP96RBbGbKNNXqEJkGSjgrEGBc=";
+ yarnHash = "sha256-atl2XrY9LmWh2USp6K2W50/khEsnY6OqKBUS26Ln9ZM=";
meta = with lib; {
homepage = "https://tandoor.dev/";
diff --git a/pkgs/applications/misc/tandoor-recipes/default.nix b/pkgs/applications/misc/tandoor-recipes/default.nix
index f5ce961e401a..2dde47d25f27 100644
--- a/pkgs/applications/misc/tandoor-recipes/default.nix
+++ b/pkgs/applications/misc/tandoor-recipes/default.nix
@@ -5,28 +5,7 @@
, fetchpatch
}:
let
- python = python3.override {
- packageOverrides = self: super: {
- django = super.django_4;
-
- django-crispy-forms = super.django-crispy-forms.overridePythonAttrs (_: rec {
- version = "1.14.0";
- format = "setuptools";
-
- src = fetchFromGitHub {
- owner = "django-crispy-forms";
- repo = "django-crispy-forms";
- rev = "refs/tags/${version}";
- hash = "sha256-NZ2lWxsQHc7Qc4HDoWgjJTZ/bJHmjpBf3q1LVLtzA+8=";
- };
- });
-
- # Tests are incompatible with Django 4
- django-js-reverse = super.django-js-reverse.overridePythonAttrs (_: {
- doCheck = false;
- });
- };
- };
+ python = python3;
common = callPackage ./common.nix { };
@@ -44,8 +23,8 @@ python.pkgs.pythonPackages.buildPythonPackage rec {
./media-root.patch
# https://github.com/TandoorRecipes/recipes/pull/2706
(fetchpatch {
- url = "https://github.com/TandoorRecipes/recipes/commit/8f66f5c3ca61751a80cc133ff4c59019d6fca406.patch";
- hash = "sha256-oF5YlPg1LEdLvKpxiSqjTmYPbrGquPlRIz6A05031gs=";
+ url = "https://github.com/TandoorRecipes/recipes/commit/702c1d67d3b2d13cf471bf9daa1d2ef0f1837dec.patch";
+ hash = "sha256-6vmtYs6b0d38Ojxxc2I7oxqpkIlyRVlhzURBOTO2VlQ=";
})
];
@@ -63,6 +42,7 @@ python.pkgs.pythonPackages.buildPythonPackage rec {
django-cleanup
django-cors-headers
django-crispy-forms
+ django-crispy-bootstrap4
django-hcaptcha
django-js-reverse
django-oauth-toolkit
@@ -145,6 +125,11 @@ python.pkgs.pythonPackages.buildPythonPackage rec {
pytest-factoryboy
];
+ # flaky
+ disabledTests = [
+ "test_search_count"
+ ];
+
passthru = {
inherit frontend python;
diff --git a/pkgs/by-name/ae/aeron-cpp/aeron-all.patch b/pkgs/by-name/ae/aeron-cpp/aeron-all.patch
new file mode 100644
index 000000000000..40dd24c14b0c
--- /dev/null
+++ b/pkgs/by-name/ae/aeron-cpp/aeron-all.patch
@@ -0,0 +1,11 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -323,7 +323,7 @@ if (BUILD_AERON_ARCHIVE_API)
+ "${CMAKE_CURRENT_SOURCE_DIR}}/aeron-archive/src/main/java/*.java")
+
+ add_custom_command(OUTPUT ${AERON_ALL_JAR}
+- COMMAND ${CMAKE_COMMAND} -E env JAVA_HOME=$ENV{JAVA_HOME} BUILD_JAVA_HOME=$ENV{BUILD_JAVA_HOME} BUILD_JAVA_VERSION=$ENV{BUILD_JAVA_VERSION} ${GRADLE_WRAPPER} :aeron-all:clean :aeron-all:assemble --no-daemon -x javadoc --console=plain -q
++ COMMAND ln --symbolic ${CMAKE_CURRENT_SOURCE_DIR}/aeron-all.jar ${AERON_ALL_JAR}
+ DEPENDS ${AERON_ALL_SOURCES}
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ COMMENT "Generating aeron-all jar")
diff --git a/pkgs/by-name/ae/aeron-cpp/aeron-archive-sbe.patch b/pkgs/by-name/ae/aeron-cpp/aeron-archive-sbe.patch
new file mode 100644
index 000000000000..d4a845f2bf7b
--- /dev/null
+++ b/pkgs/by-name/ae/aeron-cpp/aeron-archive-sbe.patch
@@ -0,0 +1,11 @@
+--- a/aeron-archive/src/main/cpp/CMakeLists.txt
++++ b/aeron-archive/src/main/cpp/CMakeLists.txt
+@@ -59,7 +59,7 @@ set(GENERATED_CODECS
+ ${ARCHIVE_CODEC_TARGET_DIR}/aeron_archive_client/RecordingSignalEvent.h)
+
+ add_custom_command(OUTPUT ${GENERATED_CODECS}
+- COMMAND ${CMAKE_COMMAND} -E env JAVA_HOME=$ENV{JAVA_HOME} BUILD_JAVA_HOME=$ENV{BUILD_JAVA_HOME} BUILD_JAVA_VERSION=$ENV{BUILD_JAVA_VERSION} ${GRADLE_WRAPPER} -Dcodec.target.dir=${ARCHIVE_CODEC_TARGET_DIR} :aeron-archive:generateCppCodecs --no-daemon --console=plain -q
++ COMMAND ${CMAKE_COMMAND} -E env JAVA_HOME=$ENV{JAVA_HOME} BUILD_JAVA_HOME=$ENV{BUILD_JAVA_HOME} BUILD_JAVA_VERSION=$ENV{BUILD_JAVA_VERSION} java -cp sbe.jar -Dsbe.output.dir=${ARCHIVE_CODEC_TARGET_DIR} -Dsbe.target.language=Cpp -Dsbe.target.namespace=aeron.archive.client uk.co.real_logic.sbe.SbeTool ${ARCHIVE_CODEC_SCHEMA_DIR}/aeron-archive-codecs.xml
+ DEPENDS ${CODEC_SCHEMA} aeron-all-jar
+ WORKING_DIRECTORY ${ARCHIVE_CODEC_WORKING_DIR}
+ COMMENT "Generating C++ Archive codecs")
diff --git a/pkgs/by-name/ae/aeron-cpp/package.nix b/pkgs/by-name/ae/aeron-cpp/package.nix
new file mode 100644
index 000000000000..28feed78cc49
--- /dev/null
+++ b/pkgs/by-name/ae/aeron-cpp/package.nix
@@ -0,0 +1,134 @@
+{
+ autoPatchelfHook,
+ cmake,
+ fetchFromGitHub,
+ fetchMavenArtifact,
+ jdk11,
+ lib,
+ libbsd,
+ libuuid,
+ makeWrapper,
+ patchelf,
+ stdenv,
+ zlib
+}:
+
+let
+ version = "1.42.1";
+
+ aeronAll = fetchMavenArtifact {
+ artifactId = "aeron-all";
+ groupId = "io.aeron";
+ inherit version;
+ hash = "sha512-pjX+JopK6onDwElMIroj+ZXrKwdPj5H2uPg08XgNlrK1rAkHo9MUT8weBGbuFVFDLeqOZrHj0bt1wJ9XgYY5aA==";
+ };
+
+ sbeAll_1_29_0 = fetchMavenArtifact {
+ groupId = "uk.co.real-logic";
+ version = "1.29.0";
+ artifactId = "sbe-all";
+ hash = "sha512-exklKS9MgOH369lyuv+5vAWRHt+Iwg/FmsWy8PsSMjenvjs8I2KA1VTa00pIXkw/YNqbUDBIWvS07b4mS8YdPQ==";
+ };
+
+ sbeAll = sbeAll_1_29_0;
+
+in
+
+stdenv.mkDerivation {
+ pname = "aeron-cpp";
+ inherit version;
+
+ src = fetchFromGitHub {
+ owner = "real-logic";
+ repo = "aeron";
+ rev = version;
+ hash = "sha256-ODJeJ4XLazPeNLdzaoclPnE59NpxFUqZu3Aw3iTVQT8=";
+ };
+
+ patches = [
+ ./aeron-all.patch
+ # Use pre-built aeron-all.jar from Maven repo, avoiding Gradle
+
+ ./aeron-archive-sbe.patch
+ # Use SBE tool to generate C++ codecs, avoiding Gradle
+ ];
+
+ buildInputs = [
+ jdk11
+ libbsd
+ libuuid
+ zlib
+ ];
+
+ nativeBuildInputs = [
+ autoPatchelfHook
+ cmake
+ makeWrapper
+ patchelf
+ ];
+
+ configurePhase = ''
+ runHook preConfigure
+
+ mkdir --parents cppbuild/Release
+ (
+ cd cppbuild/Release
+ cmake \
+ -G "CodeBlocks - Unix Makefiles" \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DAERON_TESTS=OFF \
+ -DAERON_SYSTEM_TESTS=OFF \
+ -DAERON_BUILD_SAMPLES=OFF \
+ -DCMAKE_INSTALL_PREFIX:PATH=../../install \
+ ../..
+ )
+
+ runHook postConfigure
+ '';
+
+ buildPhase = ''
+ runHook preBuild
+
+ ln --symbolic "${aeronAll.jar}" ./aeron-all.jar
+ ln --symbolic "${sbeAll.jar}" ./sbe.jar
+ mkdir --parents aeron-all/build/libs
+ (
+ cd cppbuild/Release
+
+ make -j $NIX_BUILD_CORES \
+ aeron \
+ aeron_archive_client \
+ aeron_client_shared \
+ aeron_driver \
+ aeron_client \
+ aeron_driver_static \
+ aeronmd
+
+ make -j $NIX_BUILD_CORES install
+ )
+
+ runHook postBuild
+ '';
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir --parents "$out"
+ cp --archive --verbose --target-directory="$out" install/*
+
+ runHook postInstall
+ '';
+
+ meta = with lib; {
+ description = "Aeron Messaging C++ Library";
+ homepage = "https://aeron.io/";
+ license = licenses.asl20;
+ mainProgram = "aeronmd";
+ maintainers = [ maintainers.vaci ];
+ sourceProvenance = [
+ sourceTypes.fromSource
+ sourceTypes.binaryBytecode
+ ];
+ };
+}
+
diff --git a/pkgs/by-name/me/mercure/package.nix b/pkgs/by-name/me/mercure/package.nix
index e90bd8d10ba4..06b674d6a5bb 100644
--- a/pkgs/by-name/me/mercure/package.nix
+++ b/pkgs/by-name/me/mercure/package.nix
@@ -8,18 +8,18 @@
buildGoModule rec {
pname = "mercure";
- version = "0.15.5";
+ version = "0.15.6";
src = fetchFromGitHub {
owner = "dunglas";
repo = "mercure";
rev = "v${version}";
- hash = "sha256-DyKNKhxjnOfxYcp3w1nB6kxs9c4ZaHL0AN0Eb5vc6mA=";
+ hash = "sha256-sGMjb7Ilm+RqR6bRGLAYB/nciE5oHeitDllr4H11uHU=";
};
sourceRoot = "source/caddy";
- vendorHash = "sha256-2SZv6iwEZjq/50WwwupfHjbg0vNpff/Cn21nPqeHJMw=";
+ vendorHash = "sha256-v0YKlkflo7eKXh38uqsnxZlLr3+fFl8EMeUsf8UMU48=";
subPackages = [ "mercure" ];
excludedPackages = [ "../cmd/mercure" ];
diff --git a/pkgs/by-name/no/nomnatong/package.nix b/pkgs/by-name/no/nomnatong/package.nix
new file mode 100644
index 000000000000..e4913f463e6b
--- /dev/null
+++ b/pkgs/by-name/no/nomnatong/package.nix
@@ -0,0 +1,51 @@
+{ lib
+, stdenvNoCC
+, fetchFromGitHub
+, python3Packages
+}:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+ pname = "nomnatong";
+ version = "5.07";
+
+ src = fetchFromGitHub {
+ owner = "nomfoundation";
+ repo = "font";
+ rev = "v${finalAttrs.version}";
+ hash = "sha256-31sqjOIrJByfTx4Ez6KvQDApCeVYMQnGeiM9INMR3zI=";
+ };
+
+ nativeBuildInputs = [
+ python3Packages.afdko
+ python3Packages.fonttools
+ ];
+
+ sourceRoot = "${finalAttrs.src.name}/src";
+
+ buildPhase = ''
+ runHook preBuild
+
+ makeotf -r -f font.pfa -omitMacNames -ff features.txt -mf FontMenuNameDB -ga -ci UnicodeVariationSequences.txt
+ otf2ttf NomNaTong-Regular.otf
+ sfntedit -d DSIG NomNaTong-Regular.otf
+
+ runHook postBuild
+ '';
+
+ installPhase = ''
+ runHook preInstall
+
+ install -Dm444 NomNaTong-Regular.otf -t $out/share/fonts/opentype/
+ install -Dm444 NomNaTong-Regular.ttf -t $out/share/fonts/truetype/
+
+ runHook postInstall
+ '';
+
+ meta = {
+ homepage = "http://nomfoundation.org/nom-tools/Nom-Font";
+ description = "The Hán-Nôm Coded Character Set and Nom Na Tong Regular Reference Font";
+ license = lib.licenses.mit;
+ maintainers = with lib.maintainers; [ eclairevoyant ];
+ platforms = lib.platforms.all;
+ };
+})
diff --git a/pkgs/by-name/sa/satty/package.nix b/pkgs/by-name/sa/satty/package.nix
index 40592a3d7dc3..e358397a48b3 100644
--- a/pkgs/by-name/sa/satty/package.nix
+++ b/pkgs/by-name/sa/satty/package.nix
@@ -9,31 +9,22 @@
, gtk4
, libadwaita
, pango
-, fetchpatch
, copyDesktopItems
}:
rustPlatform.buildRustPackage rec {
pname = "satty";
- version = "0.7.0";
+ version = "0.8.0";
src = fetchFromGitHub {
owner = "gabm";
repo = "Satty";
rev = "v${version}";
- hash = "sha256-x2ljheG7ZqaeiPersC/e8Er2jvk5TJs65Y3N1GjTiNU=";
+ hash = "sha256-w2kosnPDWUZqp6iyj6ypAGRlmYSby+9B6epsAkFK6eY=";
};
- cargoPatches = [
- (fetchpatch {
- name = "fix-Cargo.lock";
- url = "https://github.com/gabm/Satty/commit/39be6ddce264552df971e949a6a3175b102530b2.patch";
- hash = "sha256-GUHupZE1A7AmXvZ8WvRzBkQyH7qlMTetBjHuakfIZ7w=";
- })
- ];
-
- cargoHash = "sha256-0GsbWd/gpKZm7nNXkuJhB02YKUj3XCrSfpRA9KBXydU=";
+ cargoHash = "sha256-XeuzoHXSiKtA9ofCBOMHnKKzcmur+/TS96DnzIfpqUA=";
nativeBuildInputs = [
copyDesktopItems
diff --git a/pkgs/by-name/ui/uiua/package.nix b/pkgs/by-name/ui/uiua/package.nix
index 5e91612f3613..8ad589954ceb 100644
--- a/pkgs/by-name/ui/uiua/package.nix
+++ b/pkgs/by-name/ui/uiua/package.nix
@@ -14,16 +14,16 @@
rustPlatform.buildRustPackage rec {
pname = "uiua";
- version = "0.5.1";
+ version = "0.6.1";
src = fetchFromGitHub {
owner = "uiua-lang";
repo = "uiua";
rev = version;
- hash = "sha256-xDHr3U+Lc/C2L7jER2VqJvvw9mxCkDzO+K8tzC4Fw2A=";
+ hash = "sha256-/yeLsuwEKw6+jBKd7CAnR9RuVaKwXjVpcvO3v0FaAck=";
};
- cargoHash = "sha256-9xjTXQJVGIvdx+SfJGPVa5Ax9wvS4Fms7blxAVrt6IY=";
+ cargoHash = "sha256-4tR1n96s91EFZLO4RIBpNKLjOSbGrBIApJrS60RBuQQ=";
nativeBuildInputs = lib.optionals stdenv.isDarwin [
rustPlatform.bindgenHook
diff --git a/pkgs/development/misc/datafusion/default.nix b/pkgs/development/misc/datafusion/default.nix
index 49f33e016ed5..bcd937a914ea 100644
--- a/pkgs/development/misc/datafusion/default.nix
+++ b/pkgs/development/misc/datafusion/default.nix
@@ -7,19 +7,19 @@
rustPlatform.buildRustPackage rec {
pname = "datafusion-cli";
- version = "32.0.0";
+ version = "33.0.0";
src = fetchFromGitHub {
name = "datafusion-cli-source";
owner = "apache";
repo = "arrow-datafusion";
rev = version;
- sha256 = "sha256-QJOv2neEOxLvWoGuS3QyBqGOBi1KJQ8feK6LOrHBL8g=";
+ sha256 = "sha256-ywyzvk50Fr9TSaCrqd14lSi1PJ9ggA1YQ/X0aFGFk1M=";
};
sourceRoot = "${src.name}/datafusion-cli";
- cargoHash = "sha256-NYdxDFUBOBC3nTZB8STdZfOz3Dw0htFCqE0qBRMzQvw=";
+ cargoHash = "sha256-0a/O9nNi3JLufQxG+5EgCXtV0y03X7R6UY+f/tVGB90=";
buildInputs = lib.optionals stdenv.isDarwin [
darwin.apple_sdk.frameworks.Security
diff --git a/pkgs/development/python-modules/guppy3/default.nix b/pkgs/development/python-modules/guppy3/default.nix
index 80b4a19019a3..5c102f10a551 100644
--- a/pkgs/development/python-modules/guppy3/default.nix
+++ b/pkgs/development/python-modules/guppy3/default.nix
@@ -7,15 +7,15 @@
buildPythonPackage rec {
pname = "guppy3";
- version = "3.1.4";
+ version = "3.1.4.post1";
format = "setuptools";
- disabled = pythonOlder "3.6";
+ disabled = pythonOlder "3.8";
src = fetchFromGitHub {
owner = "zhuyifei1999";
repo = pname;
- rev = "v${version}";
- hash = "sha256-RMWIP4tVSCCEQpr0kZvsN1HwL6rBcLuubfBl175eSNg=";
+ rev = "refs/tags/v${version}";
+ hash = "sha256-HHy57P6WEHZKygAbdjEh6XAApFlQueiYGr02eSQMWfc=";
};
propagatedBuildInputs = [ tkinter ];
diff --git a/pkgs/development/python-modules/m2crypto/default.nix b/pkgs/development/python-modules/m2crypto/default.nix
index f8ec95604542..7353831bad39 100644
--- a/pkgs/development/python-modules/m2crypto/default.nix
+++ b/pkgs/development/python-modules/m2crypto/default.nix
@@ -1,4 +1,5 @@
{ lib
+, stdenv
, buildPythonPackage
, fetchPypi
, openssl
@@ -10,7 +11,7 @@
buildPythonPackage rec {
pname = "m2crypto";
- version = "0.39.0";
+ version = "0.40.1";
format = "setuptools";
disabled = pythonOlder "3.7";
@@ -18,7 +19,7 @@ buildPythonPackage rec {
src = fetchPypi {
pname = "M2Crypto";
inherit version;
- hash = "sha256-JMD0cTWLixmtTIqp2hLoaAMLZcH9syedAG32DJUBM4o=";
+ hash = "sha256-u/0RPsVXCMBYFiUqTwnkI33087v8gXHLvDMFfSV7uzA=";
};
nativeBuildInputs = [
@@ -31,6 +32,11 @@ buildPythonPackage rec {
parameterized
];
+ env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin (toString [
+ "-Wno-error=implicit-function-declaration"
+ "-Wno-error=incompatible-pointer-types"
+ ]);
+
nativeCheckInputs = [
pytestCheckHook
];
diff --git a/pkgs/development/tools/cue/default.nix b/pkgs/development/tools/cue/default.nix
index 0ff3e90dc0db..1afee9cd7551 100644
--- a/pkgs/development/tools/cue/default.nix
+++ b/pkgs/development/tools/cue/default.nix
@@ -1,6 +1,5 @@
{ buildGoModule
, fetchFromGitHub
-, fetchpatch
, lib
, installShellFiles
, testers
@@ -9,31 +8,18 @@
buildGoModule rec {
pname = "cue";
- version = "0.6.0";
+ version = "0.7.0";
src = fetchFromGitHub {
owner = "cue-lang";
repo = "cue";
rev = "v${version}";
- hash = "sha256-1svWb83xbVZIlI9pviCYfQ6Kkp0QRjZwrauL7PPJLts=";
+ hash = "sha256-L2KEOnUmQ6K+VtyJEha0LBWPVt+FqNh94gi3cMg82x0=";
};
- vendorHash = "sha256-ku4tPTXdnKau0kqnAAEHDdSF4oAC/6SDkTq8cECOiEk=";
+ vendorHash = "sha256-Eq51sydt2eu3pSCRjepvxpU01T0vr0axx9XEk34db28=";
- patches = [
- # Fix tests with go1.21. See https://github.com/cue-lang/cue/issues/2548.
- (fetchpatch {
- url = "https://github.com/cue-lang/cue/commit/3bf3dbd655284d3628399a83a703f4849b5f9374.patch";
- hash = "sha256-9Zi2mrqB1JTFvadiqWTgzzi1pffZ3gOmTtrDDQWye1Q=";
- })
- ];
-
- postPatch = ''
- # Disable script tests
- rm -f cmd/cue/cmd/script_test.go
- '';
-
- excludedPackages = [ "internal/ci/updatetxtar" "internal/cmd/embedpkg" "internal/cmd/qgo" "pkg/gen" ];
+ subPackages = [ "cmd/cue" ];
nativeBuildInputs = [ installShellFiles ];
diff --git a/pkgs/games/heroic/default.nix b/pkgs/games/heroic/default.nix
index 9aacc0856c4f..239d78f973c8 100644
--- a/pkgs/games/heroic/default.nix
+++ b/pkgs/games/heroic/default.nix
@@ -17,18 +17,18 @@
let appName = "heroic";
in stdenv.mkDerivation rec {
pname = "heroic-unwrapped";
- version = "2.10.0";
+ version = "2.11.0";
src = fetchFromGitHub {
owner = "Heroic-Games-Launcher";
repo = "HeroicGamesLauncher";
rev = "v${version}";
- hash = "sha256-umPQIxwIahjbO4QbkKEoeSSeYT2UatsTGRPrLgw5KW8=";
+ hash = "sha256-N+9wNlDARE1zdXW/vka6whFNu5CF240zCJ00EDT1cM0=";
};
offlineCache = fetchYarnDeps {
yarnLock = "${src}/yarn.lock";
- hash = "sha256-o5ztk4okH21Op1jqHZfranR12M8B1Y/K95aWb10tf5o=";
+ hash = "sha256-P7Mm9TMNjr2glLQppjJZRMeN9sYKyZWzRaerZIcY3Y8=";
};
nativeBuildInputs = [
@@ -45,9 +45,6 @@ in stdenv.mkDerivation rec {
./remove-drm-support.patch
# Make Heroic create Steam shortcuts (to non-steam games) with the correct path to heroic.
./fix-non-steam-shortcuts.patch
- # Fix reg add infinite loop
- # Submitted upstream: https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher/pull/3210
- ./fix-infinite-loop.patch
];
postPatch = ''
diff --git a/pkgs/games/heroic/fix-infinite-loop.patch b/pkgs/games/heroic/fix-infinite-loop.patch
deleted file mode 100644
index 99aae02c3a1a..000000000000
--- a/pkgs/games/heroic/fix-infinite-loop.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-From b698779053b7ba31bd8e69b230e86515e3019bf6 Mon Sep 17 00:00:00 2001
-From: K900
-Date: Sun, 5 Nov 2023 22:04:32 +0300
-Subject: [PATCH] Force add the registry entry
-
-Otherwise, newer Wine versions will prompt to overwrite it and loop there forever.
----
- src/backend/storeManagers/legendary/setup.ts | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/backend/storeManagers/legendary/setup.ts b/src/backend/storeManagers/legendary/setup.ts
-index 1837106621..b5c2432435 100644
---- a/src/backend/storeManagers/legendary/setup.ts
-+++ b/src/backend/storeManagers/legendary/setup.ts
-@@ -20,7 +20,7 @@ export const legendarySetup = async (appName: string) => {
-
- // Fixes games like Fallout New Vegas and Dishonored: Death of the Outsider
- await runWineCommandOnGame(appName, {
-- commandParts: ['reg', 'add', 'HKEY_CLASSES_ROOT\\com.epicgames.launcher'],
-+ commandParts: ['reg', 'add', 'HKEY_CLASSES_ROOT\\com.epicgames.launcher', '/f'],
- wait: true,
- protonVerb: 'waitforexitandrun'
- })
diff --git a/pkgs/os-specific/linux/raspberrypi-eeprom/default.nix b/pkgs/os-specific/linux/raspberrypi-eeprom/default.nix
index 6a429a77c57b..6cc93b8dd3c6 100644
--- a/pkgs/os-specific/linux/raspberrypi-eeprom/default.nix
+++ b/pkgs/os-specific/linux/raspberrypi-eeprom/default.nix
@@ -3,13 +3,13 @@
}:
stdenvNoCC.mkDerivation rec {
pname = "raspberrypi-eeprom";
- version = "2023.01.11-138c0";
+ version = "2023.10.30-2712";
src = fetchFromGitHub {
owner = "raspberrypi";
repo = "rpi-eeprom";
- rev = "v${version}";
- hash = "sha256-z3VyqdSkvxAgVmtMI/Is9qYrOeDXlyVLwHSSC2+AxcA=";
+ rev = "refs/tags/v${version}";
+ hash = "sha256-TKvby0qIXidM5Qk7q+ovLk0DpHsCbdQe7xndrgKrSXk=";
};
buildInputs = [ python3 ];
@@ -24,18 +24,21 @@ stdenvNoCC.mkDerivation rec {
'';
installPhase = ''
- mkdir -p $out/bin $out/share/rpi-eeprom
+ mkdir -p "$out/bin"
+ cp rpi-eeprom-config rpi-eeprom-update rpi-eeprom-digest "$out/bin"
- cp rpi-eeprom-config rpi-eeprom-update rpi-eeprom-digest $out/bin
- cp -r firmware/{beta,critical,old,stable} $out/share/rpi-eeprom
- cp -P firmware/default firmware/latest $out/share/rpi-eeprom
+ mkdir -p "$out/lib/firmware/raspberrypi"
+ for dirname in firmware-*; do
+ dirname_suffix="''${dirname/#firmware-}"
+ cp -rP "$dirname" "$out/lib/firmware/raspberrypi/bootloader-$dirname_suffix"
+ done
'';
fixupPhase = ''
patchShebangs $out/bin
for i in rpi-eeprom-update rpi-eeprom-config; do
wrapProgram $out/bin/$i \
- --set FIRMWARE_ROOT $out/share/rpi-eeprom \
+ --set FIRMWARE_ROOT "$out/lib/firmware/raspberrypi/bootloader" \
${lib.optionalString stdenvNoCC.isAarch64 "--set VCMAILBOX ${libraspberrypi}/bin/vcmailbox"} \
--prefix PATH : "${lib.makeBinPath ([
binutils-unwrapped
@@ -51,9 +54,9 @@ stdenvNoCC.mkDerivation rec {
'';
meta = with lib; {
- description = "Installation scripts and binaries for the closed sourced Raspberry Pi 4 EEPROMs";
- homepage = "https://www.raspberrypi.org/documentation/hardware/raspberrypi/booteeprom.md";
+ description = "Installation scripts and binaries for the closed sourced Raspberry Pi 4 and 5 bootloader EEPROMs";
+ homepage = "https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#raspberry-pi-4-boot-eeprom";
license = with licenses; [ bsd3 unfreeRedistributableFirmware ];
- maintainers = with maintainers; [ das_j ];
+ maintainers = with maintainers; [ das_j Luflosi ];
};
}
diff --git a/pkgs/servers/aeron/default.nix b/pkgs/servers/aeron/default.nix
index 5ce49660f4af..202f2748c4e8 100644
--- a/pkgs/servers/aeron/default.nix
+++ b/pkgs/servers/aeron/default.nix
@@ -1,138 +1,151 @@
{
lib,
stdenv,
- fetchFromGitHub,
+ fetchMavenArtifact,
jdk11,
- gradle,
- makeWrapper,
- perl,
- writeText
+ makeWrapper
}:
let
pname = "aeron";
- version = "1.40.0";
+ version = "1.42.1";
+ groupId = "io.aeron";
- src = fetchFromGitHub {
- owner = "real-logic";
- repo = pname;
- rev = version;
- sha256 = "sha256-4C5YofA/wxwa7bfc6IqsDrw8CLQWKoVBCIe8Ec7ifAg=";
+ aeronAll_1_40_0 = fetchMavenArtifact {
+ inherit groupId;
+ version = "1.40.0";
+ artifactId = "aeron-all";
+ hash = "sha512-NyhYaQqOWcSBwzwpje6DMAp36CEgGSNXBSdaRrDyP+Fn2Z0nvh5o2czog6GKKtbjH9inYfyyF/21gehfgLF6qA==";
};
- deps = stdenv.mkDerivation {
- name = "${pname}-deps";
- inherit src;
-
- nativeBuildInputs = [
- gradle
- jdk11
- perl
- ];
-
- buildPhase = ''
- export GRADLE_USER_HOME=$(mktemp -d);
- gradle \
- --console plain \
- --no-daemon \
- --system-prop org.gradle.java.home="${jdk11.home}" \
- --exclude-task javadoc \
- build
- '';
-
- # Mavenize dependency paths
- # e.g. org.codehaus.groovy/groovy/2.4.0/{hash}/groovy-2.4.0.jar -> org/codehaus/groovy/groovy/2.4.0/groovy-2.4.0.jar
- installPhase = ''
- find "$GRADLE_USER_HOME/caches/modules-2" -type f -regex '.*\.\(jar\|pom\)' \
- | perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/$5" #e' \
- | sh
- ln -s "$out/com/squareup/okio/okio/2.10.0/okio-jvm-2.10.0.jar" "$out/com/squareup/okio/okio/2.10.0/okio-2.10.0.jar"
- '';
-
- outputHashAlgo = "sha256";
- outputHashMode = "recursive";
- outputHash = "sha256-1hvQyEiCMfIw6wv9GOEehX0wrtBnAilVuTGUWAGoH6k=";
+ aeronAgent_1_40_0 = fetchMavenArtifact {
+ inherit groupId;
+ version = "1.40.0";
+ artifactId = "aeron-agent";
+ hash = "sha512-3XZ6XxPwlNchMe4p4MuDNTWntGokFPnetN7AUMlhXzIgeXBExXvn+BdxI2crfq/xgVGrF/hjHD2shwu2NBa0Tg==";
};
- # Point to our local deps repo
- gradleInit = writeText "init.gradle" ''
- settingsEvaluated { settings ->
- settings.pluginManagement {
- repositories {
- clear()
- maven { url '${deps}' }
- }
- }
- }
- gradle.projectsLoaded {
- rootProject.allprojects {
- repositories {
- clear()
- maven { url '${deps}' }
- }
- }
- }
- '';
+ aeronArchive_1_40_0 = fetchMavenArtifact {
+ inherit groupId;
+ version = "1.40.0";
+ artifactId = "aeron-archive";
+ hash = "sha512-tmH+/020d1iNkGb8nvenDG9YU+H4PLuO2hSm2dULUIjSXX5AHLDkkrQ3uVQADV9koRNMtC4UXloqtqncay18kQ==";
+ };
- # replace buildSrc
- buildSrc = writeText "build.gradle" ''
- repositories {
- clear()
- maven { url '${deps}' }
- }
+ aeronClient_1_40_0 = fetchMavenArtifact {
+ inherit groupId;
+ version = "1.40.0";
+ artifactId = "aeron-client";
+ hash = "sha512-y3/8Lu2EgMICRNPEWe0hrKpVhF35pDjCO6ip/Af9nPZ70ZRqGmlfEG7OzWVok11DuI8pYJ64jv6bEtUfSHTYXQ==";
+ };
- dependencies {
- implementation 'org.asciidoctor:asciidoctorj:2.5.5'
- implementation 'org.eclipse.jgit:org.eclipse.jgit:5.13.1.202206130422-r'
- }
- '';
+ aeronCluster_1_40_0 =fetchMavenArtifact {
+ inherit groupId;
+ version = "1.40.0";
+ artifactId = "aeron-cluster";
+ hash = "sha512-28m14Etjse3MVKBLvaQONujMfvdRQZG0ArezzVcjPEqVqTGd33mrqjPngALV8CG2nJTtcrJmsieRGLEosaXqTw==";
+ };
-in stdenv.mkDerivation rec {
+ aeronDriver_1_40_0 = fetchMavenArtifact {
+ inherit groupId;
+ version = "1.40.0";
+ artifactId = "aeron-driver";
+ hash = "sha512-SRWHMHR6J1YEtCbSHqSLYm3vo8XgkVXGK3cFQbONT60TZvawP5UlZs7e3eFNpu3qQSA4prqEjjWO9Xc9M/sjKw==";
+ };
- inherit pname src version;
+ aeronSamples_1_40_0 = fetchMavenArtifact {
+ inherit groupId;
+ version = "1.40.0";
+ artifactId = "aeron-samples";
+ hash = "sha512-vyAq4mfLDDyaVk7wcIpPvPcxSt92Ek8mxfuuZwaX+0Wu9oJCpwbnjvS9+bvzcE4qSGxzY6eJIIX6nMdw0LkACg==";
+ };
+
+ aeronAll_1_42_1 = fetchMavenArtifact {
+ inherit groupId;
+ artifactId = "aeron-all";
+ inherit version;
+ hash = "sha512-pjX+JopK6onDwElMIroj+ZXrKwdPj5H2uPg08XgNlrK1rAkHo9MUT8weBGbuFVFDLeqOZrHj0bt1wJ9XgYY5aA==";
+ };
+
+ aeronAgent_1_42_1 = fetchMavenArtifact {
+ inherit groupId;
+ version = "1.42.1";
+ artifactId = "aeron-agent";
+ hash = "sha512-3XZ6XvPwlNdiMe4p4MuDNTWntGokFPnetN7AUMlhXzIgeXBExXvn+BdxI2crfq/xgVGrF/hjHD2shwu2NBa0Tg==";
+ };
+
+ aeronArchive_1_42_1 = fetchMavenArtifact {
+ inherit groupId;
+ version = "1.42.1";
+ artifactId = "aeron-archive";
+ hash = "sha512-1DmeI9flgfzanbP4jSNUSAQAv2SGBvnlb3G4LbO1m+BN/gPn/nahvVHzotvGJjJA5b65DE1Sc5tqPnItRTK0zQ==";
+ };
+
+ aeronClient_1_42_1 = fetchMavenArtifact {
+ inherit groupId;
+ version = "1.42.1";
+ artifactId = "aeron-client";
+ hash = "sha512-td2k2WNpaD3+2PNvlCCJ8cZRr615sFjngiQDKzuY2e9/de1OUwvER3zzVAFOonEIV+s5EhwVeQvWq3Wj5Uhadg==";
+ };
+
+ aeronCluster_1_42_1 =fetchMavenArtifact {
+ inherit groupId;
+ version = "1.42.1";
+ artifactId = "aeron-cluster";
+ hash = "sha512-RiqGeY3pRqN6wWpeJqbeB1SCxrZWnQghrJlCGhew2M/GZAaWHkhhJs5haJqRvR5oOAbaI4RfIWvi5U7TiUo88g==";
+ };
+
+ aeronDriver_1_42_1 = fetchMavenArtifact {
+ inherit groupId;
+ version = "1.42.1";
+ artifactId = "aeron-driver";
+ hash = "sha512-fKEN5oQCxD1h3qPODKkqFwYbKW6L03RFHNylpsYaNlztNODlCJd0CS5dBR6K8rbOdb2dVIXK/dW/IPBvOi5q/g==";
+ };
+ aeronSamples_1_42_1 = fetchMavenArtifact {
+ inherit groupId;
+ version = "1.42.1";
+ artifactId = "aeron-samples";
+ hash = "sha512-4JnHn22vJf2lmOg6ev5PD+/YiaL3KgfuyWAK92djX3KBVXO7ERMY2kH79dveVCJG1rbekvE1j1pnjaAIxwJcqg==";
+ };
+
+ aeronAll = aeronAll_1_42_1;
+ aeronArchive = aeronArchive_1_42_1;
+ aeronClient = aeronClient_1_42_1;
+ aeronCluster = aeronCluster_1_42_1;
+ aeronDriver= aeronDriver_1_42_1;
+ aeronSamples = aeronSamples_1_42_1;
+
+in stdenv.mkDerivation {
+
+ inherit pname version;
buildInputs = [
- jdk11
+ aeronAll
+ aeronArchive
+ aeronClient
+ aeronCluster
+ aeronDriver
+ aeronSamples
];
nativeBuildInputs = [
- gradle
makeWrapper
];
- buildPhase = ''
- runHook preBuild
-
- export GRADLE_USER_HOME=$(mktemp -d)
- cp ${buildSrc} ./buildSrc/build.gradle
-
- gradle \
- --console plain \
- --exclude-task checkstyleMain \
- --exclude-task checkstyleGenerated \
- --exclude-task checkstyleGeneratedTest \
- --exclude-task checkstyleMain \
- --exclude-task checkstyleTest \
- --exclude-task javadoc \
- --exclude-task test \
- --init-script "${gradleInit}" \
- --no-daemon \
- --offline \
- --project-prop VERSION=${version} \
- --system-prop org.gradle.java.home="${jdk11.home}" \
- assemble
-
- runHook postBuild
- '';
+ dontUnpack = true;
+ dontConfigure = true;
+ dontBuild = true;
installPhase = ''
runHook preInstall
- install -D --mode=0444 --target-directory="$out/share/java" \
- "./aeron-all/build/libs/aeron-all-${version}.jar" \
- "./aeron-agent/build/libs/aeron-agent-${version}.jar" \
- "./aeron-archive/build/libs/aeron-archive-${version}.jar" \
- "./aeron-client/build/libs/aeron-client-${version}.jar"
+ mkdir --parents "$out/share/java"
+ ln --symbolic "${aeronAll.jar}" "$out/share/java/${pname}-all.jar"
+ ln --symbolic "${aeronArchive.jar}" "$out/share/java/${pname}-archive.jar"
+ ln --symbolic "${aeronClient.jar}" "$out/share/java/${pname}-client.jar"
+ ln --symbolic "${aeronCluster.jar}" "$out/share/java/${pname}-cluster.jar"
+ ln --symbolic "${aeronDriver.jar}" "$out/share/java/${pname}-driver.jar"
+ ln --symbolic "${aeronSamples.jar}" "$out/share/java/${pname}-samples.jar"
runHook postInstall
'';
@@ -141,7 +154,7 @@ in stdenv.mkDerivation rec {
function wrap {
makeWrapper "${jdk11}/bin/java" "$out/bin/$1" \
--add-flags "--add-opens java.base/sun.nio.ch=ALL-UNNAMED" \
- --add-flags "--class-path $out/share/java/aeron-all-${version}.jar" \
+ --add-flags "--class-path ${aeronAll.jar}" \
--add-flags "$2"
}
@@ -150,30 +163,22 @@ in stdenv.mkDerivation rec {
wrap "${pname}-archiving-media-driver" io.aeron.archive.ArchivingMediaDriver
wrap "${pname}-archive-tool" io.aeron.archive.ArchiveTool
wrap "${pname}-logging-agent" io.aeron.agent.DynamicLoggingAgent
+ wrap "${pname}-clustered-media-driver" io.aeron.cluster.ClusteredMediaDriver
wrap "${pname}-cluster-tool" io.aeron.cluster.ClusterTool
'';
- doCheck = true;
-
- checkPhase = ''
- runHook preCheck
-
- gradle \
- --console plain \
- --init-script "${gradleInit}" \
- --no-daemon \
- --offline \
- --project-prop VERSION=${version} \
- --system-prop org.gradle.java.home="${jdk11.home}" \
- test
-
- runHook postCheck
- '';
+ passthru = {
+ jar = aeronAll.jar;
+ };
meta = with lib; {
description = "Low-latency messaging library";
homepage = "https://aeron.io/";
license = licenses.asl20;
+ mainProgram = "${pname}-media-driver";
maintainers = [ maintainers.vaci ];
+ sourceProvenance = [
+ sourceTypes.binaryBytecode
+ ];
};
}
diff --git a/pkgs/servers/jigasi/default.nix b/pkgs/servers/jigasi/default.nix
new file mode 100644
index 000000000000..d9f8ed60c09b
--- /dev/null
+++ b/pkgs/servers/jigasi/default.nix
@@ -0,0 +1,46 @@
+{ lib, stdenv, fetchurl, dpkg, jdk11, nixosTests }:
+
+let
+ pname = "jigasi";
+ version = "1.1-311-g3de47d0";
+ src = fetchurl {
+ url = "https://download.jitsi.org/stable/${pname}_${version}-1_all.deb";
+ hash = "sha256-pwUgkId7AHFjbqYo02fBgm0gsiMqEz+wvwkdy6sgTD0=";
+ };
+in
+stdenv.mkDerivation {
+ inherit pname version src;
+
+ nativeBuildInputs = [ dpkg ];
+
+ dontBuild = true;
+
+ unpackCmd = "dpkg-deb -x $src debcontents";
+
+ installPhase = ''
+ runHook preInstall
+ substituteInPlace usr/share/${pname}/${pname}.sh \
+ --replace "exec java" "exec ${jdk11}/bin/java"
+
+ mkdir -p $out/{share,bin}
+ mv usr/share/${pname} $out/share/
+ mv etc $out/
+ ln -s $out/share/${pname}/${pname}.sh $out/bin/${pname}
+ runHook postInstall
+ '';
+
+ passthru.tests = {
+ single-node-smoke-test = nixosTests.jitsi-meet;
+ };
+
+ meta = with lib; {
+ description = "A server-side application that allows regular SIP clients to join Jitsi Meet conferences";
+ longDescription = ''
+ Jitsi Gateway to SIP: a server-side application that allows regular SIP clients to join Jitsi Meet conferences hosted by Jitsi Videobridge.
+ '';
+ homepage = "https://github.com/jitsi/jigasi";
+ license = licenses.asl20;
+ maintainers = teams.jitsi.members;
+ platforms = platforms.linux;
+ };
+}
diff --git a/pkgs/shells/carapace/default.nix b/pkgs/shells/carapace/default.nix
index 819e59d62dfc..c90096ca5a3c 100644
--- a/pkgs/shells/carapace/default.nix
+++ b/pkgs/shells/carapace/default.nix
@@ -2,16 +2,16 @@
buildGoModule rec {
pname = "carapace";
- version = "0.28.4";
+ version = "0.28.5";
src = fetchFromGitHub {
owner = "rsteube";
repo = "${pname}-bin";
rev = "v${version}";
- hash = "sha256-Yl/eRp+KRh9whSYjB3IK6vwtknWAicpYQ8/Rjjeef4s=";
+ hash = "sha256-mprwDx1SvvT96MR1YgLwIJaEHCknCkbJ9zq0HfNJy/Y=";
};
- vendorHash = "sha256-pcvxIPyJwptYx5964NzR9LUJTld2JVA0zaSjGH5sz4E=";
+ vendorHash = "sha256-rR0mLO8jjhTPySQ/BTegNe9kd2DudULOuYBBB/P9K1s=";
ldflags = [
"-s"
diff --git a/pkgs/tools/misc/kak-lsp/0001-Use-full-Perl-path.patch b/pkgs/tools/misc/kak-lsp/0001-Use-full-Perl-path.patch
new file mode 100644
index 000000000000..38f0d38cb215
--- /dev/null
+++ b/pkgs/tools/misc/kak-lsp/0001-Use-full-Perl-path.patch
@@ -0,0 +1,37 @@
+From b93660cfa8a80a5e5bf72e1f06fb7bf95272c7e4 Mon Sep 17 00:00:00 2001
+From: PoweredByPie
+Date: Fri, 8 Dec 2023 04:39:01 -0800
+Subject: [PATCH] Use full Perl path
+
+---
+ rc/lsp.kak | 7 +------
+ 1 file changed, 1 insertion(+), 6 deletions(-)
+
+diff --git a/rc/lsp.kak b/rc/lsp.kak
+index d695a2e..7c6a436 100644
+--- a/rc/lsp.kak
++++ b/rc/lsp.kak
+@@ -2339,11 +2339,6 @@ define-command -hidden lsp-snippets-insert-completion -params 1 %{ evaluate-comm
+ }}
+
+ define-command lsp-snippets-insert -hidden -params 1 %[
+- evaluate-commands %sh{
+- if ! command -v perl > /dev/null 2>&1; then
+- printf "fail '''perl'' must be installed to use the ''snippets-insert'' command'"
+- fi
+- }
+ evaluate-commands -draft -save-regs '^"' %[
+ set-register '"' %arg{1}
+ execute-keys
+@@ -2397,7 +2392,7 @@ define-command lsp-snippets-insert -hidden -params 1 %[
+
+ define-command -hidden lsp-snippets-insert-perl-impl %[
+ evaluate-commands %sh[ # $kak_quoted_selections
+- perl -e '
++ @perlPath@/bin/perl -e '
+ use strict;
+ use warnings;
+ use Text::ParseWords();
+--
+2.42.0
+
diff --git a/pkgs/tools/misc/kak-lsp/default.nix b/pkgs/tools/misc/kak-lsp/default.nix
index 1f494dea8438..9a19d40bed23 100644
--- a/pkgs/tools/misc/kak-lsp/default.nix
+++ b/pkgs/tools/misc/kak-lsp/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, rustPlatform, CoreServices, Security, SystemConfiguration }:
+{ stdenv, lib, fetchFromGitHub, rustPlatform, perl, CoreServices, Security, SystemConfiguration }:
rustPlatform.buildRustPackage rec {
pname = "kak-lsp";
@@ -13,13 +13,20 @@ rustPlatform.buildRustPackage rec {
cargoHash = "sha256-+3cpAL+8X8L833kmZapUoGSwHOj+hnDN6oDNJZ6y24Q=";
- buildInputs = lib.optionals stdenv.isDarwin [ CoreServices Security SystemConfiguration ];
+ buildInputs = [ perl ] ++ lib.optionals stdenv.isDarwin [ CoreServices Security SystemConfiguration ];
+
+ patches = [ ./0001-Use-full-Perl-path.patch ];
+
+ postPatch = ''
+ substituteInPlace rc/lsp.kak \
+ --subst-var-by perlPath ${lib.getBin perl}
+ '';
meta = with lib; {
description = "Kakoune Language Server Protocol Client";
homepage = "https://github.com/kak-lsp/kak-lsp";
license = with licenses; [ unlicense /* or */ mit ];
- maintainers = [ maintainers.spacekookie ];
+ maintainers = with maintainers; [ spacekookie poweredbypie ];
mainProgram = "kak-lsp";
};
}
diff --git a/pkgs/tools/misc/usbview/default.nix b/pkgs/tools/misc/usbview/default.nix
index 71a4ddeefd8d..17402fe76120 100644
--- a/pkgs/tools/misc/usbview/default.nix
+++ b/pkgs/tools/misc/usbview/default.nix
@@ -3,23 +3,25 @@
, fetchFromGitHub
, autoreconfHook
, pkg-config
+, imagemagick
, gtk3
}:
stdenv.mkDerivation rec {
pname = "usbview";
- version = "2.0";
+ version = "3.1";
src = fetchFromGitHub {
owner = "gregkh";
repo = "usbview";
rev = "v${version}";
- sha256 = "1cw5jjpidjn34rxdjslpdlj99k4dqaq1kz6mplv5hgjdddijvn5p";
+ hash = "sha256-h+sB83BYsrB2VxwtatPWNiM0WdTCMY289nh+/0o8GOw=";
};
nativeBuildInputs = [
autoreconfHook
pkg-config
+ imagemagick
];
buildInputs = [
@@ -30,7 +32,7 @@ stdenv.mkDerivation rec {
description = "USB viewer for Linux";
license = licenses.gpl2Only;
homepage = "http://www.kroah.com/linux-usb/";
- maintainers = with maintainers; [ shamilton ];
+ maintainers = with maintainers; [ shamilton h7x4 ];
platforms = platforms.linux;
mainProgram = "usbview";
};
diff --git a/pkgs/tools/security/grype/default.nix b/pkgs/tools/security/grype/default.nix
index ff996562572b..db955a1a2086 100644
--- a/pkgs/tools/security/grype/default.nix
+++ b/pkgs/tools/security/grype/default.nix
@@ -7,13 +7,13 @@
buildGoModule rec {
pname = "grype";
- version = "0.69.1";
+ version = "0.73.4";
src = fetchFromGitHub {
owner = "anchore";
repo = pname;
rev = "refs/tags/v${version}";
- hash = "sha256-AXw2mtN4FC6EKWN8dObrU04+WSHDWLY19FSWqQlkq/Q=";
+ hash = "sha256-cYhgLMKj8fo49zr+NC7SARiyybCnqXf+DgB+6IkwkAw=";
# 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;
@@ -28,7 +28,7 @@ buildGoModule rec {
proxyVendor = true;
- vendorHash = "sha256-iitWThvWVfeJMLcJLgmFnVguFVF4DejObZPZ3qB5cY0=";
+ vendorHash = "sha256-Zx8gJZVkobKjrGysrqYd6Hv2bGqEgOQ+EGSKDvOM33M=";
nativeBuildInputs = [
installShellFiles
@@ -73,6 +73,8 @@ buildGoModule rec {
--replace "TestCmd" "SkipCmd"
substituteInPlace grype/pkg/provider_test.go \
--replace "TestSyftLocationExcludes" "SkipSyftLocationExcludes"
+ substituteInPlace test/cli/cmd_test.go \
+ --replace "Test_descriptorNameAndVersionSet" "Skip_descriptorNameAndVersionSet"
# remove tests that depend on git
substituteInPlace test/cli/db_validations_test.go \
--replace "TestDBValidations" "SkipDBValidations"
@@ -83,6 +85,8 @@ buildGoModule rec {
--replace "TestSBOMInput_AsArgument" "SkipSBOMInput_AsArgument"
substituteInPlace test/cli/subprocess_test.go \
--replace "TestSubprocessStdin" "SkipSubprocessStdin"
+ substituteInPlace grype/internal/packagemetadata/names_test.go \
+ --replace "TestAllNames" "SkipAllNames"
# segfault
rm grype/db/v5/namespace/cpe/namespace_test.go
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 245238b9a6ef..9751a698e099 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -10046,6 +10046,8 @@ with pkgs;
lua = lua5_2_compat;
};
+ lttoolbox = callPackage ../applications/misc/lttoolbox { };
+
ltwheelconf = callPackage ../applications/misc/ltwheelconf { };
lunatask = callPackage ../applications/misc/lunatask { };
@@ -26610,6 +26612,8 @@ with pkgs;
jitsi-excalidraw = callPackage ../servers/jitsi-excalidraw { };
+ jigasi = callPackage ../servers/jigasi { };
+
jitsi-meet = callPackage ../servers/web-apps/jitsi-meet { };
jitsi-meet-prosody = callPackage ../misc/jitsi-meet-prosody { };