Merge staging-next into staging
This commit is contained in:
@@ -14668,6 +14668,11 @@
|
||||
githubId = 146413;
|
||||
name = "Tobias Poschwatta";
|
||||
};
|
||||
poweredbypie = {
|
||||
name = "poweredbypie";
|
||||
github = "poweredbypie";
|
||||
githubId = 67135060;
|
||||
};
|
||||
PowerUser64 = {
|
||||
email = "blakelysnorth@gmail.com";
|
||||
github = "PowerUser64";
|
||||
|
||||
@@ -429,6 +429,7 @@ with lib.maintainers; {
|
||||
cleeyv
|
||||
ryantm
|
||||
lassulus
|
||||
yayayayaka
|
||||
];
|
||||
scope = "Maintain Jitsi.";
|
||||
shortName = "Jitsi";
|
||||
|
||||
@@ -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,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;
|
||||
|
||||
|
||||
@@ -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")
|
||||
@@ -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
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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" ];
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
})
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
];
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
|
||||
@@ -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 = ''
|
||||
|
||||
@@ -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
@@ -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
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
}
|
||||
@@ -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
|
||||
|
||||
@@ -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";
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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,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
|
||||
|
||||
@@ -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 { };
|
||||
|
||||
Reference in New Issue
Block a user