commit
7b601ada77
@ -1,181 +0,0 @@ |
|||||||
{ config, lib, pkgs, ... }: |
|
||||||
let |
|
||||||
cfg = config.services.dendrite; |
|
||||||
settingsFormat = pkgs.formats.yaml { }; |
|
||||||
configurationYaml = settingsFormat.generate "dendrite.yaml" cfg.settings; |
|
||||||
workingDir = "/var/lib/dendrite"; |
|
||||||
in |
|
||||||
{ |
|
||||||
options.services.dendrite = { |
|
||||||
enable = lib.mkEnableOption "matrix.org dendrite"; |
|
||||||
httpPort = lib.mkOption { |
|
||||||
type = lib.types.nullOr lib.types.port; |
|
||||||
default = 8008; |
|
||||||
description = '' |
|
||||||
The port to listen for HTTP requests on. |
|
||||||
''; |
|
||||||
}; |
|
||||||
httpsPort = lib.mkOption { |
|
||||||
type = lib.types.nullOr lib.types.port; |
|
||||||
default = null; |
|
||||||
description = '' |
|
||||||
The port to listen for HTTPS requests on. |
|
||||||
''; |
|
||||||
}; |
|
||||||
tlsCert = lib.mkOption { |
|
||||||
type = lib.types.nullOr lib.types.path; |
|
||||||
example = "/var/lib/dendrite/server.cert"; |
|
||||||
default = null; |
|
||||||
description = '' |
|
||||||
The path to the TLS certificate. |
|
||||||
|
|
||||||
<programlisting> |
|
||||||
nix-shell -p dendrite --command "generate-keys --tls-cert server.crt --tls-key server.key" |
|
||||||
</programlisting> |
|
||||||
''; |
|
||||||
}; |
|
||||||
tlsKey = lib.mkOption { |
|
||||||
type = lib.types.nullOr lib.types.path; |
|
||||||
example = "/var/lib/dendrite/server.key"; |
|
||||||
default = null; |
|
||||||
description = '' |
|
||||||
The path to the TLS key. |
|
||||||
|
|
||||||
<programlisting> |
|
||||||
nix-shell -p dendrite --command "generate-keys --tls-cert server.crt --tls-key server.key" |
|
||||||
</programlisting> |
|
||||||
''; |
|
||||||
}; |
|
||||||
environmentFile = lib.mkOption { |
|
||||||
type = lib.types.nullOr lib.types.path; |
|
||||||
example = "/var/lib/dendrite/registration_secret"; |
|
||||||
default = null; |
|
||||||
description = '' |
|
||||||
Environment file as defined in <citerefentry> |
|
||||||
<refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum> |
|
||||||
</citerefentry>. |
|
||||||
Secrets may be passed to the service without adding them to the world-readable |
|
||||||
Nix store, by specifying placeholder variables as the option value in Nix and |
|
||||||
setting these variables accordingly in the environment file. Currently only used |
|
||||||
for the registration secret to allow secure registration when |
|
||||||
client_api.registration_disabled is true. |
|
||||||
|
|
||||||
<programlisting> |
|
||||||
# snippet of dendrite-related config |
|
||||||
services.dendrite.settings.client_api.registration_shared_secret = "$REGISTRATION_SHARED_SECRET"; |
|
||||||
</programlisting> |
|
||||||
|
|
||||||
<programlisting> |
|
||||||
# content of the environment file |
|
||||||
REGISTRATION_SHARED_SECRET=verysecretpassword |
|
||||||
</programlisting> |
|
||||||
|
|
||||||
Note that this file needs to be available on the host on which |
|
||||||
<literal>dendrite</literal> is running. |
|
||||||
''; |
|
||||||
}; |
|
||||||
settings = lib.mkOption { |
|
||||||
type = lib.types.submodule { |
|
||||||
freeformType = settingsFormat.type; |
|
||||||
options.global = { |
|
||||||
server_name = lib.mkOption { |
|
||||||
type = lib.types.str; |
|
||||||
example = "example.com"; |
|
||||||
description = '' |
|
||||||
The domain name of the server, with optional explicit port. |
|
||||||
This is used by remote servers to connect to this server. |
|
||||||
This is also the last part of your UserID. |
|
||||||
''; |
|
||||||
}; |
|
||||||
private_key = lib.mkOption { |
|
||||||
type = lib.types.path; |
|
||||||
example = "${workingDir}/matrix_key.pem"; |
|
||||||
description = '' |
|
||||||
The path to the signing private key file, used to sign |
|
||||||
requests and events. |
|
||||||
|
|
||||||
<programlisting> |
|
||||||
nix-shell -p dendrite --command "generate-keys --private-key matrix_key.pem" |
|
||||||
</programlisting> |
|
||||||
''; |
|
||||||
}; |
|
||||||
trusted_third_party_id_servers = lib.mkOption { |
|
||||||
type = lib.types.listOf lib.types.str; |
|
||||||
example = [ "matrix.org" ]; |
|
||||||
default = [ "matrix.org" "vector.im" ]; |
|
||||||
description = '' |
|
||||||
Lists of domains that the server will trust as identity |
|
||||||
servers to verify third party identifiers such as phone |
|
||||||
numbers and email addresses |
|
||||||
''; |
|
||||||
}; |
|
||||||
}; |
|
||||||
options.client_api = { |
|
||||||
registration_disabled = lib.mkOption { |
|
||||||
type = lib.types.bool; |
|
||||||
default = true; |
|
||||||
description = '' |
|
||||||
Whether to disable user registration to the server |
|
||||||
without the shared secret. |
|
||||||
''; |
|
||||||
}; |
|
||||||
}; |
|
||||||
}; |
|
||||||
default = { }; |
|
||||||
description = '' |
|
||||||
Configuration for dendrite, see: |
|
||||||
<link xlink:href="https://github.com/matrix-org/dendrite/blob/master/dendrite-config.yaml"/> |
|
||||||
for available options with which to populate settings. |
|
||||||
''; |
|
||||||
}; |
|
||||||
}; |
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable { |
|
||||||
assertions = [{ |
|
||||||
assertion = cfg.httpsPort != null -> (cfg.tlsCert != null && cfg.tlsKey != null); |
|
||||||
message = '' |
|
||||||
If Dendrite is configured to use https, tlsCert and tlsKey must be provided. |
|
||||||
|
|
||||||
nix-shell -p dendrite --command "generate-keys --tls-cert server.crt --tls-key server.key" |
|
||||||
''; |
|
||||||
}]; |
|
||||||
|
|
||||||
systemd.services.dendrite = { |
|
||||||
description = "Dendrite Matrix homeserver"; |
|
||||||
after = [ |
|
||||||
"network.target" |
|
||||||
]; |
|
||||||
wantedBy = [ "multi-user.target" ]; |
|
||||||
serviceConfig = { |
|
||||||
Type = "simple"; |
|
||||||
DynamicUser = true; |
|
||||||
StateDirectory = "dendrite"; |
|
||||||
WorkingDirectory = workingDir; |
|
||||||
RuntimeDirectory = "dendrite"; |
|
||||||
RuntimeDirectoryMode = "0700"; |
|
||||||
EnvironmentFile = lib.mkIf (cfg.environmentFile != null) cfg.environmentFile; |
|
||||||
ExecStartPre = |
|
||||||
if (cfg.environmentFile != null) then '' |
|
||||||
${pkgs.envsubst}/bin/envsubst \ |
|
||||||
-i ${configurationYaml} \ |
|
||||||
-o /run/dendrite/dendrite.yaml |
|
||||||
'' else '' |
|
||||||
${pkgs.coreutils}/bin/cp ${configurationYaml} /run/dendrite/dendrite.yaml |
|
||||||
''; |
|
||||||
ExecStart = lib.strings.concatStringsSep " " ([ |
|
||||||
"${pkgs.dendrite}/bin/dendrite-monolith-server" |
|
||||||
"--config /run/dendrite/dendrite.yaml" |
|
||||||
] ++ lib.optionals (cfg.httpPort != null) [ |
|
||||||
"--http-bind-address :${builtins.toString cfg.httpPort}" |
|
||||||
] ++ lib.optionals (cfg.httpsPort != null) [ |
|
||||||
"--https-bind-address :${builtins.toString cfg.httpsPort}" |
|
||||||
"--tls-cert ${cfg.tlsCert}" |
|
||||||
"--tls-key ${cfg.tlsKey}" |
|
||||||
]); |
|
||||||
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID"; |
|
||||||
Restart = "on-failure"; |
|
||||||
}; |
|
||||||
}; |
|
||||||
}; |
|
||||||
meta.maintainers = lib.teams.matrix.members; |
|
||||||
} |
|
@ -1,99 +0,0 @@ |
|||||||
import ./make-test-python.nix ( |
|
||||||
{ pkgs, ... }: |
|
||||||
let |
|
||||||
homeserverUrl = "http://homeserver:8008"; |
|
||||||
|
|
||||||
private_key = pkgs.runCommand "matrix_key.pem" { |
|
||||||
buildInputs = [ pkgs.dendrite ]; |
|
||||||
} "generate-keys --private-key $out"; |
|
||||||
in |
|
||||||
{ |
|
||||||
name = "dendrite"; |
|
||||||
meta = with pkgs.lib; { |
|
||||||
maintainers = teams.matrix.members; |
|
||||||
}; |
|
||||||
|
|
||||||
nodes = { |
|
||||||
homeserver = { pkgs, ... }: { |
|
||||||
services.dendrite = { |
|
||||||
enable = true; |
|
||||||
settings = { |
|
||||||
global.server_name = "test-dendrite-server.com"; |
|
||||||
global.private_key = private_key; |
|
||||||
client_api.registration_disabled = false; |
|
||||||
}; |
|
||||||
}; |
|
||||||
|
|
||||||
networking.firewall.allowedTCPPorts = [ 8008 ]; |
|
||||||
}; |
|
||||||
|
|
||||||
client = { pkgs, ... }: { |
|
||||||
environment.systemPackages = [ |
|
||||||
( |
|
||||||
pkgs.writers.writePython3Bin "do_test" |
|
||||||
{ libraries = [ pkgs.python3Packages.matrix-nio ]; } '' |
|
||||||
import asyncio |
|
||||||
|
|
||||||
from nio import AsyncClient |
|
||||||
|
|
||||||
|
|
||||||
async def main() -> None: |
|
||||||
# Connect to dendrite |
|
||||||
client = AsyncClient("http://homeserver:8008", "alice") |
|
||||||
|
|
||||||
# Register as user alice |
|
||||||
response = await client.register("alice", "my-secret-password") |
|
||||||
|
|
||||||
# Log in as user alice |
|
||||||
response = await client.login("my-secret-password") |
|
||||||
|
|
||||||
# Create a new room |
|
||||||
response = await client.room_create(federate=False) |
|
||||||
room_id = response.room_id |
|
||||||
|
|
||||||
# Join the room |
|
||||||
response = await client.join(room_id) |
|
||||||
|
|
||||||
# Send a message to the room |
|
||||||
response = await client.room_send( |
|
||||||
room_id=room_id, |
|
||||||
message_type="m.room.message", |
|
||||||
content={ |
|
||||||
"msgtype": "m.text", |
|
||||||
"body": "Hello world!" |
|
||||||
} |
|
||||||
) |
|
||||||
|
|
||||||
# Sync responses |
|
||||||
response = await client.sync(timeout=30000) |
|
||||||
|
|
||||||
# Check the message was received by dendrite |
|
||||||
last_message = response.rooms.join[room_id].timeline.events[-1].body |
|
||||||
assert last_message == "Hello world!" |
|
||||||
|
|
||||||
# Leave the room |
|
||||||
response = await client.room_leave(room_id) |
|
||||||
|
|
||||||
# Close the client |
|
||||||
await client.close() |
|
||||||
|
|
||||||
asyncio.get_event_loop().run_until_complete(main()) |
|
||||||
'' |
|
||||||
) |
|
||||||
]; |
|
||||||
}; |
|
||||||
}; |
|
||||||
|
|
||||||
testScript = '' |
|
||||||
start_all() |
|
||||||
|
|
||||||
with subtest("start the homeserver"): |
|
||||||
homeserver.wait_for_unit("dendrite.service") |
|
||||||
homeserver.wait_for_open_port(8008) |
|
||||||
|
|
||||||
with subtest("ensure messages can be exchanged"): |
|
||||||
client.succeed("do_test") |
|
||||||
''; |
|
||||||
|
|
||||||
} |
|
||||||
) |
|
@ -1,32 +0,0 @@ |
|||||||
--- a/whipper/program/cdparanoia.py
|
|
||||||
+++ b/whipper/program/cdparanoia.py
|
|
||||||
@@ -280,10 +280,10 @@
|
|
||||||
|
|
||||||
bufsize = 1024
|
|
||||||
if self._overread:
|
|
||||||
- argv = ["cd-paranoia", "--stderr-progress",
|
|
||||||
+ argv = ["@cdparanoia@/bin/cdparanoia", "--stderr-progress",
|
|
||||||
"--sample-offset=%d" % self._offset, "--force-overread", ]
|
|
||||||
else:
|
|
||||||
- argv = ["cd-paranoia", "--stderr-progress",
|
|
||||||
+ argv = ["@cdparanoia@/bin/cdparanoia", "--stderr-progress",
|
|
||||||
"--sample-offset=%d" % self._offset, ]
|
|
||||||
if self._device:
|
|
||||||
argv.extend(["--force-cdrom-device", self._device, ])
|
|
||||||
@@ -560,7 +560,7 @@
|
|
||||||
|
|
||||||
def getCdParanoiaVersion():
|
|
||||||
getter = common.VersionGetter('cd-paranoia',
|
|
||||||
- ["cd-paranoia", "-V"],
|
|
||||||
+ ["@cdparanoia@/bin/cdparanoia", "-V"],
|
|
||||||
_VERSION_RE,
|
|
||||||
"%(version)s %(release)s")
|
|
||||||
|
|
||||||
@@ -585,7 +585,7 @@
|
|
||||||
def __init__(self, device=None):
|
|
||||||
# cdparanoia -A *always* writes cdparanoia.log
|
|
||||||
self.cwd = tempfile.mkdtemp(suffix='.whipper.cache')
|
|
||||||
- self.command = ['cd-paranoia', '-A']
|
|
||||||
+ self.command = ['@cdparanoia@/bin/cdparanoia', '-A']
|
|
||||||
if device:
|
|
||||||
self.command += ['-d', device]
|
|
@ -1,15 +0,0 @@ |
|||||||
Subject: Prevent "-dirty" from being erroneously added to the version
|
|
||||||
|
|
||||||
diff --git a/src/Makefile.am b/src/Makefile.am
|
|
||||||
index d36d1a3..00048fc 100644
|
|
||||||
--- a/src/Makefile.am
|
|
||||||
+++ b/src/Makefile.am
|
|
||||||
@@ -28,7 +28,7 @@ always:
|
|
||||||
# Always rebuild because .git/HEAD is a symbolic ref one can't depend on
|
|
||||||
StellarCoreVersion.h: always
|
|
||||||
@vers=$$(cd "$(srcdir)" \
|
|
||||||
- && git describe --always --dirty --tags 2>/dev/null \
|
|
||||||
+ && git describe --always --tags 2>/dev/null \
|
|
||||||
|| echo "$(PACKAGE) $(VERSION)"); \
|
|
||||||
echo "#define STELLAR_CORE_VERSION \"$$vers\"" > $@~
|
|
||||||
@if cmp -s $@~ $@; then rm -f $@~; else \
|
|
@ -1,35 +0,0 @@ |
|||||||
From 5dd2593369645b11a9dc03e1930617d2f5dbd039 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= <joerg@thalheim.io>
|
|
||||||
Date: Wed, 11 Nov 2020 11:48:49 +0100
|
|
||||||
Subject: [PATCH] hardcode json file path
|
|
||||||
MIME-Version: 1.0
|
|
||||||
Content-Type: text/plain; charset=UTF-8
|
|
||||||
Content-Transfer-Encoding: 8bit
|
|
||||||
|
|
||||||
Signed-off-by: Jörg Thalheim <joerg@thalheim.io>
|
|
||||||
---
|
|
||||||
wee_slack.py | 8 +-------
|
|
||||||
1 file changed, 1 insertion(+), 7 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/wee_slack.py b/wee_slack.py
|
|
||||||
index a3d779c..5942289 100644
|
|
||||||
--- a/wee_slack.py
|
|
||||||
+++ b/wee_slack.py
|
|
||||||
@@ -5136,13 +5136,7 @@ def create_slack_debug_buffer():
|
|
||||||
|
|
||||||
def load_emoji():
|
|
||||||
try:
|
|
||||||
- weechat_dir = w.info_get('weechat_dir', '')
|
|
||||||
- weechat_sharedir = w.info_get('weechat_sharedir', '')
|
|
||||||
- local_weemoji, global_weemoji = ('{}/weemoji.json'.format(path)
|
|
||||||
- for path in (weechat_dir, weechat_sharedir))
|
|
||||||
- path = (global_weemoji if os.path.exists(global_weemoji) and
|
|
||||||
- not os.path.exists(local_weemoji) else local_weemoji)
|
|
||||||
- with open(path, 'r') as ef:
|
|
||||||
+ with open('@out@/share/wee-slack/weemoji.json', 'r') as ef:
|
|
||||||
emojis = json.loads(ef.read())
|
|
||||||
if 'emoji' in emojis:
|
|
||||||
print_error('The weemoji.json file is in an old format. Please update it.')
|
|
||||||
--
|
|
||||||
2.29.0
|
|
||||||
|
|
@ -1,13 +1,13 @@ |
|||||||
diff --git a/wee_slack.py b/wee_slack.py
|
diff --git a/wee_slack.py b/wee_slack.py
|
||||||
index dbe6446..d1b7546 100644
|
index e4716b4..f673b7c 100644
|
||||||
--- a/wee_slack.py
|
--- a/wee_slack.py
|
||||||
+++ b/wee_slack.py
|
+++ b/wee_slack.py
|
||||||
@@ -25,6 +25,8 @@ import random
|
@@ -31,6 +31,8 @@ import string
|
||||||
import socket
|
# See https://github.com/numpy/numpy/issues/11925
|
||||||
import string
|
sys.modules["numpy"] = None
|
||||||
|
|
||||||
+sys.path.append('@env@')
|
+sys.path.append('@env@')
|
||||||
+
|
+
|
||||||
from websocket import ABNF, create_connection, WebSocketConnectionClosedException
|
from websocket import ( # noqa: E402
|
||||||
|
ABNF,
|
||||||
try:
|
create_connection,
|
||||||
|
@ -0,0 +1,25 @@ |
|||||||
|
diff --git a/wee_slack.py b/wee_slack.py
|
||||||
|
index e4716b4..ffd122d 100644
|
||||||
|
--- a/wee_slack.py
|
||||||
|
+++ b/wee_slack.py
|
||||||
|
@@ -6092,19 +6092,7 @@ def create_slack_debug_buffer():
|
||||||
|
|
||||||
|
def load_emoji():
|
||||||
|
try:
|
||||||
|
- weechat_dir = w.info_get("weechat_data_dir", "") or w.info_get(
|
||||||
|
- "weechat_dir", ""
|
||||||
|
- )
|
||||||
|
- weechat_sharedir = w.info_get("weechat_sharedir", "")
|
||||||
|
- local_weemoji, global_weemoji = (
|
||||||
|
- "{}/weemoji.json".format(path) for path in (weechat_dir, weechat_sharedir)
|
||||||
|
- )
|
||||||
|
- path = (
|
||||||
|
- global_weemoji
|
||||||
|
- if os.path.exists(global_weemoji) and not os.path.exists(local_weemoji)
|
||||||
|
- else local_weemoji
|
||||||
|
- )
|
||||||
|
- with open(path, "r") as ef:
|
||||||
|
+ with open("@out@/share/wee-slack/weemoji.json", "r") as ef:
|
||||||
|
emojis = json.loads(ef.read())
|
||||||
|
if "emoji" in emojis:
|
||||||
|
print_error(
|
@ -1,12 +1,22 @@ |
|||||||
{fetchFromGitLab}: |
{fetchFromGitLab}: |
||||||
rec { |
rec { |
||||||
version = "2.0.2"; |
version = "2.0.3"; |
||||||
src = fetchFromGitLab { |
src = fetchFromGitLab { |
||||||
domain = "gitlab.gnome.org"; |
domain = "gitlab.gnome.org"; |
||||||
repo = "paperwork"; |
repo = "paperwork"; |
||||||
group = "World"; |
group = "World"; |
||||||
owner = "OpenPaperwork"; |
owner = "OpenPaperwork"; |
||||||
rev = version; |
rev = version; |
||||||
sha256 = "1di7nnl8ywyiwfpl5m1kvip1m0hvijbmqmkdpviwqw7ajizrr1ly"; |
sha256 = "02c2ysca75j59v87n1axqfncvs167kmdr40m0f05asdh2akwrbi9"; |
||||||
}; |
}; |
||||||
|
sample_documents = fetchFromGitLab { |
||||||
|
domain = "gitlab.gnome.org"; |
||||||
|
repo = "paperwork-test-documents"; |
||||||
|
group = "World"; |
||||||
|
owner = "OpenPaperwork"; |
||||||
|
# https://gitlab.gnome.org/World/OpenPaperwork/paperwork/-/blob/master/paperwork-gtk/src/paperwork_gtk/model/help/screenshot.sh see TEST_DOCS_TAG |
||||||
|
rev = "1.0"; |
||||||
|
sha256 = "155nhw2jmlgfi6c3wm241vrr3yma6lw85k9lxn844z96kyi7wbpr"; |
||||||
|
}; |
||||||
|
|
||||||
} |
} |
||||||
|
@ -1,12 +0,0 @@ |
|||||||
diff --git a/repo b/repo
|
|
||||||
index 8b05def..f394b3e 100755
|
|
||||||
--- a/repo
|
|
||||||
+++ b/repo
|
|
||||||
@@ -236,6 +236,7 @@ import optparse
|
|
||||||
import re
|
|
||||||
import shutil
|
|
||||||
import stat
|
|
||||||
+import ssl
|
|
||||||
|
|
||||||
if sys.version_info[0] == 3:
|
|
||||||
import urllib.request
|
|
@ -0,0 +1,13 @@ |
|||||||
|
diff --color -ur a/CMakeLists.txt b/CMakeLists.txt
|
||||||
|
--- a/CMakeLists.txt 2021-05-30 13:46:22.256040282 +0200
|
||||||
|
+++ b/CMakeLists.txt 2021-05-30 14:15:42.530181216 +0200
|
||||||
|
@@ -333,7 +333,7 @@
|
||||||
|
# So, try first to find the CMake module provided by libxml2 package, then fallback
|
||||||
|
# on the CMake's FindLibXml2.cmake module (which can lack some definition, especially
|
||||||
|
# in static build case).
|
||||||
|
-find_package(LibXml2 QUIET NO_MODULE)
|
||||||
|
+find_package(LibXml2 QUIET MODULE)
|
||||||
|
if(DEFINED LIBXML2_VERSION_STRING)
|
||||||
|
set(LIBXML2_FOUND ON)
|
||||||
|
set(LIBXML2_INCLUDE_DIR ${LIBXML2_INCLUDE_DIRS})
|
||||||
|
Seulement dans b: good.patch
|
@ -1,62 +0,0 @@ |
|||||||
--- b/modules/json-c/configure.ac
|
|
||||||
+++ a/modules/json-c/configure.ac
|
|
||||||
@@ -75,7 +75,7 @@
|
|
||||||
AC_FUNC_VPRINTF
|
|
||||||
AC_FUNC_MEMCMP
|
|
||||||
AC_CHECK_FUNCS([realloc])
|
|
||||||
+AC_CHECK_FUNCS(strcasecmp strdup strerror snprintf vsnprintf vasprintf open strncasecmp setlocale)
|
|
||||||
-AC_CHECK_FUNCS(strcasecmp strdup strerror snprintf vsnprintf open strncasecmp setlocale)
|
|
||||||
AC_CHECK_DECLS([INFINITY], [], [], [[#include <math.h>]])
|
|
||||||
AC_CHECK_DECLS([nan], [], [], [[#include <math.h>]])
|
|
||||||
AC_CHECK_DECLS([isnan], [], [], [[#include <math.h>]])
|
|
||||||
--- b/modules/json-c/json_pointer.c
|
|
||||||
+++ a/modules/json-c/json_pointer.c
|
|
||||||
@@ -208,7 +208,7 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
va_start(args, path_fmt);
|
|
||||||
+ rc = vasprintf(&path_copy, path_fmt, args);
|
|
||||||
- rc = json_vasprintf(&path_copy, path_fmt, args);
|
|
||||||
va_end(args);
|
|
||||||
|
|
||||||
if (rc < 0)
|
|
||||||
@@ -287,7 +287,7 @@
|
|
||||||
|
|
||||||
/* pass a working copy to the recursive call */
|
|
||||||
va_start(args, path_fmt);
|
|
||||||
+ rc = vasprintf(&path_copy, path_fmt, args);
|
|
||||||
- rc = json_vasprintf(&path_copy, path_fmt, args);
|
|
||||||
va_end(args);
|
|
||||||
|
|
||||||
if (rc < 0)
|
|
||||||
--- b/modules/json-c/printbuf.c
|
|
||||||
+++ a/modules/json-c/printbuf.c
|
|
||||||
@@ -129,7 +129,7 @@
|
|
||||||
would have been written - this code handles both cases. */
|
|
||||||
if(size == -1 || size > 127) {
|
|
||||||
va_start(ap, msg);
|
|
||||||
+ if((size = vasprintf(&t, msg, ap)) < 0) { va_end(ap); return -1; }
|
|
||||||
- if((size = json_vasprintf(&t, msg, ap)) < 0) { va_end(ap); return -1; }
|
|
||||||
va_end(ap);
|
|
||||||
printbuf_memappend(p, t, size);
|
|
||||||
free(t);
|
|
||||||
--- b/modules/json-c/vasprintf_compat.h
|
|
||||||
+++ a/modules/json-c/vasprintf_compat.h
|
|
||||||
@@ -8,8 +8,9 @@
|
|
||||||
|
|
||||||
#include "snprintf_compat.h"
|
|
||||||
|
|
||||||
+#if !defined(HAVE_VASPRINTF)
|
|
||||||
/* CAW: compliant version of vasprintf */
|
|
||||||
+static int vasprintf(char **buf, const char *fmt, va_list ap)
|
|
||||||
-static int json_vasprintf(char **buf, const char *fmt, va_list ap)
|
|
||||||
{
|
|
||||||
#ifndef WIN32
|
|
||||||
static char _T_emptybuffer = '\0';
|
|
||||||
@@ -40,5 +41,6 @@
|
|
||||||
|
|
||||||
return chars;
|
|
||||||
}
|
|
||||||
+#endif /* !HAVE_VASPRINTF */
|
|
||||||
|
|
||||||
#endif /* __vasprintf_compat_h */
|
|
@ -0,0 +1,22 @@ |
|||||||
|
{ lib, stdenv, fetchgit }: |
||||||
|
|
||||||
|
stdenv.mkDerivation rec { |
||||||
|
pname = "nv-codec-headers"; |
||||||
|
version = "10.0.26.2"; |
||||||
|
|
||||||
|
src = fetchgit { |
||||||
|
url = "https://git.videolan.org/git/ffmpeg/nv-codec-headers.git"; |
||||||
|
rev = "n${version}"; |
||||||
|
sha256 = "0n5jlwjfv5irx1if1g0n52m279bw7ab6bd3jz2v4vwg9cdzbxx85"; |
||||||
|
}; |
||||||
|
|
||||||
|
makeFlags = [ "PREFIX=$(out)" ]; |
||||||
|
|
||||||
|
meta = { |
||||||
|
description = "FFmpeg version of headers for NVENC"; |
||||||
|
homepage = "https://ffmpeg.org/"; |
||||||
|
license = lib.licenses.mit; |
||||||
|
maintainers = [ lib.maintainers.MP2E ]; |
||||||
|
platforms = lib.platforms.all; |
||||||
|
}; |
||||||
|
} |
@ -0,0 +1,86 @@ |
|||||||
|
diff -aru a/Source/WebKit/NetworkProcess/ServiceWorker/WebSWOriginStore.cpp b/Source/WebKit/NetworkProcess/ServiceWorker/WebSWOriginStore.cpp
|
||||||
|
--- a/Source/WebKit/NetworkProcess/ServiceWorker/WebSWOriginStore.cpp 2021-02-26 04:57:15.000000000 -0500
|
||||||
|
+++ b/Source/WebKit/NetworkProcess/ServiceWorker/WebSWOriginStore.cpp 2021-05-16 14:45:32.000000000 -0400
|
||||||
|
@@ -87,7 +87,7 @@
|
||||||
|
if (!m_store.createSharedMemoryHandle(handle))
|
||||||
|
return;
|
||||||
|
|
||||||
|
-#if OS(DARWIN) || OS(WINDOWS)
|
||||||
|
+#if (OS(DARWIN) || OS(WINDOWS)) && !USE(UNIX_DOMAIN_SOCKETS)
|
||||||
|
uint64_t dataSize = handle.size();
|
||||||
|
#else
|
||||||
|
uint64_t dataSize = 0;
|
||||||
|
diff -aru a/Source/WebKit/Platform/IPC/IPCSemaphore.cpp b/Source/WebKit/Platform/IPC/IPCSemaphore.cpp
|
||||||
|
--- a/Source/WebKit/Platform/IPC/IPCSemaphore.cpp 2021-02-26 04:57:15.000000000 -0500
|
||||||
|
+++ b/Source/WebKit/Platform/IPC/IPCSemaphore.cpp 2021-05-16 15:54:53.000000000 -0400
|
||||||
|
@@ -26,8 +26,6 @@
|
||||||
|
#include "config.h"
|
||||||
|
#include "IPCSemaphore.h"
|
||||||
|
|
||||||
|
-#if !OS(DARWIN)
|
||||||
|
-
|
||||||
|
namespace IPC {
|
||||||
|
|
||||||
|
Semaphore::Semaphore() = default;
|
||||||
|
@@ -46,5 +44,3 @@
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
-
|
||||||
|
-#endif
|
||||||
|
diff -aru a/Source/WebKit/Platform/IPC/IPCSemaphore.h b/Source/WebKit/Platform/IPC/IPCSemaphore.h
|
||||||
|
--- a/Source/WebKit/Platform/IPC/IPCSemaphore.h 2021-02-26 04:57:15.000000000 -0500
|
||||||
|
+++ b/Source/WebKit/Platform/IPC/IPCSemaphore.h 2021-05-16 14:46:13.000000000 -0400
|
||||||
|
@@ -29,7 +29,7 @@
|
||||||
|
#include <wtf/Optional.h>
|
||||||
|
#include <wtf/Seconds.h>
|
||||||
|
|
||||||
|
-#if OS(DARWIN)
|
||||||
|
+#if PLATFORM(COCOA)
|
||||||
|
#include <mach/semaphore.h>
|
||||||
|
#include <wtf/MachSendRight.h>
|
||||||
|
#endif
|
||||||
|
@@ -51,7 +51,7 @@
|
||||||
|
void encode(Encoder&) const;
|
||||||
|
static Optional<Semaphore> decode(Decoder&);
|
||||||
|
|
||||||
|
-#if OS(DARWIN)
|
||||||
|
+#if PLATFORM(COCOA)
|
||||||
|
explicit Semaphore(MachSendRight&&);
|
||||||
|
|
||||||
|
void signal();
|
||||||
|
@@ -64,7 +64,7 @@
|
||||||
|
#endif
|
||||||
|
|
||||||
|
private:
|
||||||
|
-#if OS(DARWIN)
|
||||||
|
+#if PLATFORM(COCOA)
|
||||||
|
void destroy();
|
||||||
|
MachSendRight m_sendRight;
|
||||||
|
semaphore_t m_semaphore { SEMAPHORE_NULL };
|
||||||
|
Only in b/Source/WebKit/Platform/IPC: IPCSemaphore.h.orig
|
||||||
|
diff -aru a/Source/WebKit/Platform/SharedMemory.h b/Source/WebKit/Platform/SharedMemory.h
|
||||||
|
--- a/Source/WebKit/Platform/SharedMemory.h 2021-02-26 04:57:15.000000000 -0500
|
||||||
|
+++ b/Source/WebKit/Platform/SharedMemory.h 2021-05-16 14:45:32.000000000 -0400
|
||||||
|
@@ -75,7 +75,7 @@
|
||||||
|
|
||||||
|
bool isNull() const;
|
||||||
|
|
||||||
|
-#if OS(DARWIN) || OS(WINDOWS)
|
||||||
|
+#if (OS(DARWIN) || OS(WINDOWS)) && !USE(UNIX_DOMAIN_SOCKETS)
|
||||||
|
size_t size() const { return m_size; }
|
||||||
|
#endif
|
||||||
|
|
||||||
|
diff -aru a/Source/WebKit/UIProcess/VisitedLinkStore.cpp b/Source/WebKit/UIProcess/VisitedLinkStore.cpp
|
||||||
|
--- a/Source/WebKit/UIProcess/VisitedLinkStore.cpp 2021-02-26 04:57:16.000000000 -0500
|
||||||
|
+++ b/Source/WebKit/UIProcess/VisitedLinkStore.cpp 2021-05-16 14:45:32.000000000 -0400
|
||||||
|
@@ -119,7 +119,7 @@
|
||||||
|
return;
|
||||||
|
|
||||||
|
// FIXME: Get the actual size of data being sent from m_linkHashStore and send it in the SharedMemory::IPCHandle object.
|
||||||
|
-#if OS(DARWIN) || OS(WINDOWS)
|
||||||
|
+#if (OS(DARWIN) || OS(WINDOWS)) && !USE(UNIX_DOMAIN_SOCKETS)
|
||||||
|
uint64_t dataSize = handle.size();
|
||||||
|
#else
|
||||||
|
uint64_t dataSize = 0;
|
||||||
|
Only in b/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics: DrawingAreaCoordinatedGraphics.cpp.orig
|
@ -0,0 +1,19 @@ |
|||||||
|
{ lib, buildPythonPackage, fetchPypi, locale, pytestCheckHook, click, sortedcontainers, pyyaml }: |
||||||
|
|
||||||
|
buildPythonPackage rec { |
||||||
|
pname = "cock"; |
||||||
|
version = "0.8.0"; |
||||||
|
|
||||||
|
src = fetchPypi { |
||||||
|
inherit pname version; |
||||||
|
sha256 = "1gwaklvwlyvhz2c07hdmhbnqqmpybssxzzr0399dpjk7dgdqgam3"; |
||||||
|
}; |
||||||
|
|
||||||
|
propagatedBuildInputs = [ click sortedcontainers pyyaml ]; |
||||||
|
|
||||||
|
meta = with lib; { |
||||||
|
homepage = "https://github.com/pohmelie/cock"; |
||||||
|
description = "Configuration file with click"; |
||||||
|
license = licenses.mit; |
||||||
|
}; |
||||||
|
} |
@ -0,0 +1,35 @@ |
|||||||
|
{ lib |
||||||
|
, stdenv |
||||||
|
, buildPythonPackage |
||||||
|
, fetchPypi |
||||||
|
}: |
||||||
|
|
||||||
|
buildPythonPackage rec { |
||||||
|
pname = "cocotb-bus"; |
||||||
|
version = "0.1.1"; |
||||||
|
|
||||||
|
src = fetchPypi { |
||||||
|
inherit pname version; |
||||||
|
sha256 = "cc9b0bb00c95061a67f650caf96e3a294bb74ef437124dea456dd9e2a9431854"; |
||||||
|
}; |
||||||
|
|
||||||
|
postPatch = '' |
||||||
|
# remove circular dependency cocotb from setup.py |
||||||
|
substituteInPlace setup.py --replace '"cocotb>=1.5.0.dev,<2.0"' "" |
||||||
|
''; |
||||||
|
|
||||||
|
# tests require cocotb, disable for now to avoid circular dependency |
||||||
|
doCheck = false; |
||||||
|
|
||||||
|
# checkPhase = '' |
||||||
|
# export PATH=$out/bin:$PATH |
||||||
|
# make test |
||||||
|
# ''; |
||||||
|
|
||||||
|
meta = with lib; { |
||||||
|
description = "Pre-packaged testbenching tools and reusable bus interfaces for cocotb"; |
||||||
|
homepage = "https://github.com/cocotb/cocotb-bus"; |
||||||
|
license = licenses.bsd3; |
||||||
|
maintainers = with maintainers; [ prusnak ]; |
||||||
|
}; |
||||||
|
} |
@ -1,23 +1,29 @@ |
|||||||
{ lib, buildGoPackage, fetchFromGitHub }: |
{ lib |
||||||
|
, buildGoModule |
||||||
|
, fetchFromGitHub |
||||||
|
}: |
||||||
|
|
||||||
buildGoPackage rec { |
buildGoModule rec { |
||||||
pname = "gotty"; |
pname = "gotty"; |
||||||
version = "2.0.0-alpha.3"; |
version = "1.2.0"; |
||||||
rev = "v${version}"; |
|
||||||
|
|
||||||
goPackagePath = "github.com/yudai/gotty"; |
|
||||||
|
|
||||||
src = fetchFromGitHub { |
src = fetchFromGitHub { |
||||||
inherit rev; |
owner = "sorenisanerd"; |
||||||
owner = "yudai"; |
|
||||||
repo = "gotty"; |
repo = "gotty"; |
||||||
sha256 = "1vhhs7d4k1vpkf2k69ai2r3bp3zwnwa8l9q7vza0rck69g4nmz7a"; |
rev = "v${version}"; |
||||||
|
sha256 = "06ngxnblwkmiln9bxikg9q2wdlh45481pnz87bpsw2r7hc69bv9n"; |
||||||
}; |
}; |
||||||
|
|
||||||
|
vendorSha256 = "0mzf5209r3fzqf9q98j3b2cdzvfa3kg62xn0spx5zr6nabmhaa79"; |
||||||
|
|
||||||
|
# upstream did not update the tests, so they are broken now |
||||||
|
# https://github.com/sorenisanerd/gotty/issues/13 |
||||||
|
doCheck = false; |
||||||
|
|
||||||
meta = with lib; { |
meta = with lib; { |
||||||
description = "Share your terminal as a web application"; |
description = "Share your terminal as a web application"; |
||||||
homepage = "https://github.com/yudai/gotty"; |
homepage = "https://github.com/sorenisanerd/gotty"; |
||||||
maintainers = with maintainers; [ ]; |
maintainers = with maintainers; [ prusnak ]; |
||||||
license = licenses.mit; |
license = licenses.mit; |
||||||
}; |
}; |
||||||
} |
} |
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue