Merge staging-next into staging

This commit is contained in:
github-actions[bot]
2023-12-09 06:01:23 +00:00
committed by GitHub
32 changed files with 851 additions and 253 deletions
+5
View File
@@ -14668,6 +14668,11 @@
githubId = 146413;
name = "Tobias Poschwatta";
};
poweredbypie = {
name = "poweredbypie";
github = "poweredbypie";
githubId = 67135060;
};
PowerUser64 = {
email = "blakelysnorth@gmail.com";
github = "PowerUser64";
+1
View File
@@ -429,6 +429,7 @@ with lib.maintainers; {
cleeyv
ryantm
lassulus
yayayayaka
];
scope = "Maintain Jitsi.";
shortName = "Jitsi";
+1
View File
@@ -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
@@ -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
);
@@ -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, <option>xmppHost</option> 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
<literal>JIGASI_SIPUSER</literal>,
<literal>JIGASI_SIPPWD</literal>,
<literal>JIGASI_SIPSERVER</literal> and
<literal>JIGASI_SIPPORT</literal>.
'';
};
config = mkOption {
type = attrsOf str;
default = { };
example = literalExample ''
{
"org.jitsi.jigasi.auth.URL" = "XMPP:jitsi-meet.example.com";
}
'';
description = ''
Contents of the <filename>sip-communicator.properties</filename> 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 <<EOF >>"$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;
}
+35 -3
View File
@@ -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 <option>services.jigasi</option>.
'';
};
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;
@@ -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";
@@ -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;
};
}
@@ -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/";
@@ -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;
+11
View File
@@ -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")
@@ -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")
+134
View File
@@ -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
];
};
}
+3 -3
View File
@@ -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" ];
+51
View File
@@ -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;
};
})
+3 -12
View File
@@ -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
+3 -3
View File
@@ -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
+3 -3
View File
@@ -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
@@ -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 ];
@@ -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
];
+4 -18
View File
@@ -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 ];
+3 -6
View File
@@ -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 = ''
-23
View File
@@ -1,23 +0,0 @@
From b698779053b7ba31bd8e69b230e86515e3019bf6 Mon Sep 17 00:00:00 2001
From: K900 <me@0upti.me>
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'
})
@@ -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 ];
};
}
+128 -123
View File
@@ -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
];
};
}
+46
View File
@@ -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;
};
}
+3 -3
View File
@@ -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"
@@ -0,0 +1,37 @@
From b93660cfa8a80a5e5bf72e1f06fb7bf95272c7e4 Mon Sep 17 00:00:00 2001
From: PoweredByPie <poweredbypie@users.noreply.github.com>
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 <a-P>
@@ -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
+10 -3
View File
@@ -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";
};
}
+5 -3
View File
@@ -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";
};
+7 -3
View File
@@ -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
+4
View File
@@ -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 { };