Merge master into staging-next

This commit is contained in:
github-actions[bot] 2021-10-25 00:01:32 +00:00 committed by GitHub
commit 24cfffaa7a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
49 changed files with 1085 additions and 682 deletions

View File

@ -8,7 +8,6 @@ import queue
import io
import threading
import argparse
import atexit
import base64
import codecs
import os
@ -1128,11 +1127,13 @@ class Driver:
for cmd in cmd(start_scripts)
]
@atexit.register
def clean_up() -> None:
with rootlog.nested("clean up"):
for machine in self.machines:
machine.release()
def __enter__(self) -> "Driver":
return self
def __exit__(self, *_: Any) -> None:
with rootlog.nested("cleanup"):
for machine in self.machines:
machine.release()
def subtest(self, name: str) -> Iterator[None]:
"""Group logs under a given test name"""
@ -1307,14 +1308,13 @@ if __name__ == "__main__":
if not args.keep_vm_state:
rootlog.info("Machine state will be reset. To keep it, pass --keep-vm-state")
driver = Driver(
with Driver(
args.start_scripts, args.vlans, args.testscript.read_text(), args.keep_vm_state
)
if args.interactive:
ptpython.repl.embed(driver.test_symbols(), {})
else:
tic = time.time()
driver.run_tests()
toc = time.time()
rootlog.info(f"test script finished in {(toc-tic):.2f}s")
) as driver:
if args.interactive:
ptpython.repl.embed(driver.test_symbols(), {})
else:
tic = time.time()
driver.run_tests()
toc = time.time()
rootlog.info(f"test script finished in {(toc-tic):.2f}s")

View File

@ -0,0 +1,60 @@
{ version
, src
, jami-meta
, stdenv
, lib
, pkg-config
, cmake
, wrapQtAppsHook
, wrapGAppsHook
, gtk3-x11
, networkmanager # for libnm
, libayatana-appindicator
, libnotify
, clutter-gtk
, libcanberra-gtk3
, webkitgtk
, qrencode
, jami-libclient
, qttools
}:
stdenv.mkDerivation {
pname = "jami-client-gnome";
inherit version src;
sourceRoot = "source/client-gnome";
preConfigure = ''
echo ${version} > version.txt
'';
nativeBuildInputs = [
pkg-config
cmake
wrapGAppsHook
wrapQtAppsHook
];
# To spare double wrapping
dontWrapGApps = true;
preFixup = ''
qtWrapperArgs+=("''${gappsWrapperArgs[@]}")
'';
buildInputs = [
qttools
jami-libclient
gtk3-x11
networkmanager
libayatana-appindicator
libnotify
clutter-gtk
libcanberra-gtk3
webkitgtk
qrencode
];
meta = jami-meta // {
description = "The client based on GTK" + jami-meta.description;
};
}

View File

@ -0,0 +1,59 @@
{ version
, src
, jami-meta
, mkDerivation
, lib
, pkg-config
, cmake
, networkmanager # for libnm
, python3
, qttools # for translations
, wrapQtAppsHook
, libnotify
, qrencode
, qtwebengine
, qtdeclarative
, qtquickcontrols2
, qtmultimedia
, qtsvg
, qtwebchannel
, qtgraphicaleffects # no gui without this
, jami-libclient
}:
mkDerivation {
pname = "jami-client-qt";
inherit version src;
sourceRoot = "source/client-qt";
preConfigure = ''
python gen-resources.py
echo 'const char VERSION_STRING[] = "${version}";' > src/version.h
'';
nativeBuildInputs = [
pkg-config
cmake
python3
qttools
];
buildInputs = [
jami-libclient
networkmanager
libnotify
qrencode
qtwebengine
qtdeclarative
qtquickcontrols2
qtmultimedia
qtsvg
qtwebchannel
qtgraphicaleffects
];
meta = jami-meta // {
description = "The client based on QT" + jami-meta.description;
};
}

View File

@ -0,0 +1,142 @@
--disable-everything
--enable-zlib
--enable-gpl
--enable-swscale
--enable-bsfs
--disable-filters
--disable-programs
--disable-postproc
--disable-protocols
--enable-protocol=crypto
--enable-protocol=file
--enable-protocol=rtp
--enable-protocol=srtp
--enable-protocol=tcp
--enable-protocol=udp
--enable-protocol=unix
--enable-protocol=pipe
--disable-demuxers
--disable-muxers
--enable-muxer=rtp
--enable-muxer=g722
--enable-muxer=h263
--enable-muxer=h264
--enable-muxer=hevc
--enable-muxer=webm
--enable-muxer=ogg
--enable-muxer=pcm_s16be
--enable-muxer=pcm_s16le
--enable-demuxer=rtp
--enable-demuxer=mjpeg
--enable-demuxer=mjpeg_2000
--enable-demuxer=mpegvideo
--enable-demuxer=gif
--enable-demuxer=image_jpeg_pipe
--enable-demuxer=image_png_pipe
--enable-demuxer=image_webp_pipe
--enable-demuxer=matroska
--enable-demuxer=m4v
--enable-demuxer=mp3
--enable-demuxer=ogg
--enable-demuxer=flac
--enable-demuxer=wav
--enable-demuxer=ac3
--enable-demuxer=g722
--enable-demuxer=pcm_mulaw
--enable-demuxer=pcm_alaw
--enable-demuxer=pcm_s16be
--enable-demuxer=pcm_s16le
--enable-demuxer=h263
--enable-demuxer=h264
--enable-demuxer=hevc
--enable-parser=h263
--enable-parser=h264
--enable-parser=hevc
--enable-parser=mpeg4video
--enable-parser=vp8
--enable-parser=vp9
--enable-parser=opus
--enable-encoder=adpcm_g722
--enable-decoder=adpcm_g722
--enable-encoder=rawvideo
--enable-decoder=rawvideo
--enable-encoder=libx264
--enable-decoder=h264
--enable-encoder=pcm_alaw
--enable-decoder=pcm_alaw
--enable-encoder=pcm_mulaw
--enable-decoder=pcm_mulaw
--enable-encoder=mpeg4
--enable-decoder=mpeg4
--enable-encoder=libvpx_vp8
--enable-decoder=vp8
--enable-decoder=vp9
--enable-encoder=h263
--enable-encoder=h263p
--enable-decoder=h263
--enable-encoder=mjpeg
--enable-decoder=mjpeg
--enable-decoder=mjpegb
--enable-libspeex
--enable-libopus
--enable-libvpx
--enable-libx264
--enable-encoder=libspeex
--enable-decoder=libspeex
--enable-encoder=libopus
--enable-decoder=libopus
--enable-decoder=flac
--enable-decoder=vorbis
--enable-decoder=aac
--enable-decoder=ac3
--enable-decoder=eac3
--enable-decoder=mp3
--enable-decoder=pcm_u24be
--enable-decoder=pcm_u24le
--enable-decoder=pcm_u32be
--enable-decoder=pcm_u32le
--enable-decoder=pcm_u8
--enable-decoder=pcm_f16le
--enable-decoder=pcm_f24le
--enable-decoder=pcm_f32be
--enable-decoder=pcm_f32le
--enable-decoder=pcm_f64be
--enable-decoder=pcm_f64le
--enable-decoder=pcm_s16be
--enable-decoder=pcm_s16be_planar
--enable-decoder=pcm_s16le
--enable-decoder=pcm_s16le_planar
--enable-decoder=pcm_s24be
--enable-decoder=pcm_s24le
--enable-decoder=pcm_s24le_planar
--enable-decoder=pcm_s32be
--enable-decoder=pcm_s32le
--enable-decoder=pcm_s32le_planar
--enable-decoder=pcm_s64be
--enable-decoder=pcm_s64le
--enable-decoder=pcm_s8
--enable-decoder=pcm_s8_planar
--enable-decoder=pcm_u16be
--enable-decoder=pcm_u16le
--enable-encoder=gif
--enable-decoder=gif
--enable-encoder=jpegls
--enable-decoder=jpegls
--enable-encoder=ljpeg
--enable-decoder=jpeg2000
--enable-encoder=png
--enable-decoder=png
--enable-encoder=bmp
--enable-decoder=bmp
--enable-encoder=tiff
--enable-decoder=tiff
--enable-filter=scale
--enable-filter=overlay
--enable-filter=amix
--enable-filter=amerge
--enable-filter=aresample
--enable-filter=format
--enable-filter=aformat
--enable-filter=fps
--enable-filter=transpose
--enable-filter=pad

View File

@ -0,0 +1,18 @@
--enable-pic
--target-os=linux
--enable-indev=v4l2
--enable-indev=xcbgrab
--enable-vdpau
--enable-hwaccel=h264_vdpau
--enable-hwaccel=mpeg4_vdpau
--enable-vaapi
--enable-hwaccel=h264_vaapi
--enable-hwaccel=mpeg4_vaapi
--enable-hwaccel=h263_vaapi
--enable-hwaccel=vp8_vaapi
--enable-hwaccel=mjpeg_vaapi
--enable-hwaccel=hevc_vaapi
--enable-encoder=h264_vaapi
--enable-encoder=vp8_vaapi
--enable-encoder=mjpeg_vaapi
--enable-encoder=hevc_vaapi

View File

@ -0,0 +1,10 @@
--enable-cuvid
--enable-ffnvcodec
--enable-nvdec
--enable-nvenc
--enable-hwaccel=h264_nvdec
--enable-hwaccel=hevc_nvdec
--enable-hwaccel=vp8_nvdec
--enable-hwaccel=mjpeg_nvdec
--enable-encoder=h264_nvenc
--enable-encoder=hevc_nvenc

View File

@ -0,0 +1,5 @@
remove-mjpeg-log.patch
change-RTCP-ratio.patch
rtp_ext_abs_send_time.patch
libopusdec-enable-FEC.patch
libopusenc-enable-FEC.patch

View File

@ -0,0 +1,20 @@
0001-rfc6544.patch
0002-rfc2466.patch
0003-add-tcp-keep-alive.patch
0004-multiple_listeners.patch
0005-fix_ebusy_turn.patch
0006-ignore_ipv6_on_transport_check.patch
0007-upnp-srflx-nat-assisted-cand.patch
0008-fix_ioqueue_ipv6_sendto.patch
0009-add-config-site.patch
0010-fix-tcp-death-detection.patch
0011-fix-turn-shutdown-crash.patch
0012-ignore-down-interfaces.patch
0013-ignore-addresses-for-RFC7335.patch
0014-fix-socket-leak.patch
0015-fix-socktype-and-duplicate-checking.patch
0016-use-larger-Ta-interval.patch
0017-auto-register-thread.patch
0018-fix-ioqueue-lock-acquire.patch
0019-resort-check-list-after-adding-prflx.patch
0020-avoid-immediate-nominating-triggered-check.patch

View File

@ -0,0 +1,123 @@
{ src
, version
, jami-meta
, stdenv
, lib
, autoreconfHook
, pkg-config
, perl # for pod2man
, ffmpeg
, pjsip
, alsa-lib
, asio
, dbus
, dbus_cplusplus
, fmt
, gmp
, libarchive
, libgit2
, libnatpmp
, secp256k1
, openssl
, opendht
, speex
, webrtc-audio-processing
, jsoncpp
, gnutls
, zlib
, libyamlcpp
, libpulseaudio
, jack
, udev
, libupnp
, msgpack
, restinio
, http-parser
}:
let
readLinesToList = with builtins; file: filter (s: isString s && stringLength s > 0) (split "\n" (readFile file));
ffmpeg-jami = ffmpeg.overrideAttrs (old:
let
patch-src = src + "/daemon/contrib/src/ffmpeg/";
in
{
patches = old.patches ++ (map (x: patch-src + x) (readLinesToList ./config/ffmpeg_patches));
configureFlags = old.configureFlags
++ (readLinesToList ./config/ffmpeg_args_common)
++ lib.optionals stdenv.isLinux (readLinesToList ./config/ffmpeg_args_linux)
++ lib.optionals (stdenv.isx86_32 || stdenv.isx86_64) (readLinesToList ./config/ffmpeg_args_x86);
outputs = [ "out" "doc" ];
});
pjsip-jami = pjsip.overrideAttrs (old:
let
patch-src = src + "/daemon/contrib/src/pjproject/";
in
{
patches = old.patches ++ (map (x: patch-src + x) (readLinesToList ./config/pjsip_patches));
});
opendht-jami = opendht.override {
enableProxyServerAndClient = true;
enablePushNotifications = true;
};
in stdenv.mkDerivation {
pname = "jami-daemon";
inherit src version;
sourceRoot = "source/daemon";
nativeBuildInputs = [
autoreconfHook
pkg-config
perl
];
buildInputs = [
alsa-lib
asio
dbus
dbus_cplusplus
fmt
ffmpeg-jami
gmp
gnutls
libarchive
libgit2
libnatpmp
opendht-jami
pjsip-jami
secp256k1
openssl
speex
webrtc-audio-processing
zlib
libyamlcpp
jsoncpp
libpulseaudio
jack
opendht
libupnp
udev
msgpack
restinio
http-parser
];
doCheck = false; # The tests fail to compile due to missing headers.
enableParallelBuilding = true;
passthru = {
updateScript = ./update.sh;
ffmpeg = ffmpeg-jami;
pjsip = pjsip-jami;
opendht = opendht-jami;
};
meta = jami-meta // {
description = "The daemon" + jami-meta.description;
};
}

View File

@ -0,0 +1,41 @@
{ stdenv
, lib
, callPackage
, fetchzip
, jack
, udev
, libsForQt5
}:
rec {
version = "20211005.2.251ac7d";
src = fetchzip {
url = "https://dl.jami.net/release/tarballs/jami_${version}.tar.gz";
sha256 = "12ppbwhnk5zajb73szd04sz80bp17q577bkb9j8p45apvq201db3";
stripRoot = false;
extraPostFetch = ''
cd $out
mv ring-project/* ./
rm -r ring-project.rst ring-project client-android client-ios client-macosx client-uwp
rm daemon/contrib/tarballs/*
'';
};
jami-meta = with lib; {
homepage = "https://jami.net/";
description = " for Jami, the free and universal communication platform that respects the privacy and freedoms of its users";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = [ maintainers.linsui ];
};
jami-daemon = callPackage ./daemon.nix { inherit version src udev jack jami-meta; };
jami-libclient = libsForQt5.callPackage ./libclient.nix { inherit version src jami-meta; };
jami-client-gnome = libsForQt5.callPackage ./client-gnome.nix { inherit version src jami-meta; };
jami-client-qt = libsForQt5.callPackage ./client-qt.nix { inherit version src jami-meta; };
}

View File

@ -0,0 +1,13 @@
diff --git i/CMakeLists.txt w/CMakeLists.txt
index 0ee77dba..767e19df 100644
--- i/CMakeLists.txt
+++ w/CMakeLists.txt
@@ -635,7 +635,7 @@ if(ENABLE_SHARED)
)
endif()
-SET(INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/include)
+SET(INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_FULL_INCLUDEDIR})
INSTALL( FILES ${libringclient_LIB_HDRS} ${libringclient_extra_LIB_HDRS}
DESTINATION ${INCLUDE_INSTALL_DIR}/libringclient

View File

@ -0,0 +1,48 @@
{ version
, src
, jami-meta
, stdenv
, lib
, pkg-config
, cmake
, qtbase
, jami-daemon
}:
stdenv.mkDerivation {
pname = "jami-libclient";
inherit version src;
sourceRoot = "source/lrc";
nativeBuildInputs = [
cmake
pkg-config
];
buildInputs = [
jami-daemon
];
patches = [
# Fix path to include dir when using split outputs
./libclient-include-path.patch
];
propagatedBuildInputs = [
qtbase
];
outputs = [ "out" "dev" ];
cmakeFlags = [
"-DRING_BUILD_DIR=${jami-daemon}/include"
"-DRING_XML_INTERFACES_DIR=${jami-daemon}/share/dbus-1/interfaces"
];
dontWrapQtApps = true;
meta = jami-meta // {
description = "The client library" + jami-meta.description;
license = lib.licenses.lgpl21Plus;
};
}

View File

@ -0,0 +1,42 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p coreutils curl gnused common-updater-scripts
set -e
jami_dir="$( dirname "${BASH_SOURCE[0]}" )"
# Update src version and hash
version=$(curl -s 'https://dl.jami.net/release/tarballs/?C=M;O=D' | sed -n -E 's/^.*jami_([0-9.a-f]+)\.tar\.gz.*$/\1/p' | head -n 1)
update-source-version jami-libclient "$version" --file=pkgs/applications/networking/instant-messengers/jami/default.nix
src=$(nix-build --no-out-link -A jami-libclient.src)
config_dir="$jami_dir/config"
mkdir -p $config_dir
ffmpeg_rules="${src}/daemon/contrib/src/ffmpeg/rules.mak"
# Update FFmpeg patches
ffmpeg_patches=$(sed -n '/.sum-ffmpeg:/,/HAVE_IOS/p' ${ffmpeg_rules} | sed -n -E 's/.*ffmpeg\/(.*patch).*/\1/p')
echo -e "Patches for FFmpeg:\n${ffmpeg_patches}\n"
echo "${ffmpeg_patches}" > "$config_dir/ffmpeg_patches"
# Update FFmpeg args
ffmpeg_args_common=$(sed -n '/#disable everything/,/#platform specific options/p' ${ffmpeg_rules} | sed -n -E 's/.*(--[0-9a-z=_-]+).*/\1/p')
echo -e "Common args for FFmpeg:\n${ffmpeg_args_common}\n"
echo "${ffmpeg_args_common}" > "$config_dir/ffmpeg_args_common"
ffmpeg_args_linux1=$(sed -n '/ifdef HAVE_LINUX/,/ifdef HAVE_ANDROID/p' ${ffmpeg_rules} | sed -n -E 's/.*(--[0-9a-z=_-]+).*/\1/p')
ffmpeg_args_linux2=$(sed -n '/# Desktop Linux/,/i386 x86_64/p' ${ffmpeg_rules} | sed -n -E 's/.*(--[0-9a-z=_-]+).*/\1/p')
echo -e "Linux args for FFmpeg:\n${ffmpeg_args_linux1}\n${ffmpeg_args_linux2}\n"
echo "${ffmpeg_args_linux1}" > "$config_dir/ffmpeg_args_linux"
echo "${ffmpeg_args_linux2}" >> "$config_dir/ffmpeg_args_linux"
ffmpeg_args_x86=$(sed -n '/i386 x86_64/,/# End Desktop Linux:/p' ${ffmpeg_rules} | sed -n -E 's/.*(--[0-9a-z=_-]+).*/\1/p')
echo -e "x86 args for FFmpeg:\n${ffmpeg_args_x86}\n"
echo "${ffmpeg_args_x86}" > "$config_dir/ffmpeg_args_x86"
# Update pjsip patches
pjsip_patches=$(sed -n '/UNPACK/,/HAVE_ANDROID/p' ${src}/daemon/contrib/src/pjproject/rules.mak | sed -n -E 's/.*pjproject\/(00.*patch).*/\1/p')
echo -e "Patches for pjsip:\n${pjsip_patches}\n"
echo "${pjsip_patches}" > "$config_dir/pjsip_patches"

View File

@ -1,150 +0,0 @@
{ lib, stdenv
, fetchgit
, which
, autoreconfHook
, pkg-config
, automake
, libtool
, pjsip
, libyamlcpp
, alsa-lib
, libpulseaudio
, libsamplerate
, libsndfile
, dbus
, dbus_cplusplus
, ffmpeg_3
, udev
, pcre
, gsm
, speex
, boost
, opendht
, msgpack
, gnutls
, zlib
, jsoncpp
, xorg
, libargon2
, cryptopp
, openssl
, perl
, python3
, libupnp
, speexdsp
, fetchFromGitHub
, cmake
, asio
}:
let
myPython = python3.withPackages (ps: with ps; [
pygobject3
dbus-python
]);
src = fetchgit {
url = "https://gitlab.savoirfairelinux.com/ring/ring-daemon.git";
rev = "006b8dc7be08fe9beb68709af71004e7bc1ceb5c";
sha256 = "0ih9g0rismrhx6nqcy3jqfbcs166grg0shnfmrnmykl9h0xy8z47";
};
patchdir = "${src}/contrib/src";
restbed = import ./restbed.nix {
inherit stdenv lib fetchFromGitHub cmake asio openssl;
patches = [
"${patchdir}/restbed/CMakeLists.patch"
"${patchdir}/restbed/strand.patch"
"${patchdir}/restbed/uri_cpp.patch"
"${patchdir}/restbed/dns-resolution-error.patch"
"${patchdir}/restbed/string.patch"
];
};
pjsip' = lib.overrideDerivation pjsip (old: {
patches = [
"${patchdir}/pjproject/gnutls.patch"
./notestsapps.patch # this one had to be modified
"${patchdir}/pjproject/fix_base64.patch"
"${patchdir}/pjproject/ipv6.patch"
"${patchdir}/pjproject/ice_config.patch"
"${patchdir}/pjproject/multiple_listeners.patch"
"${patchdir}/pjproject/pj_ice_sess.patch"
"${patchdir}/pjproject/fix_turn_fallback.patch"
"${patchdir}/pjproject/fix_ioqueue_ipv6_sendto.patch"
"${patchdir}/pjproject/add_dtls_transport.patch"
];
CFLAGS = "-g -DPJ_ICE_MAX_CAND=256 -DPJ_ICE_MAX_CHECKS=150 -DPJ_ICE_COMP_BITS=2 -DPJ_ICE_MAX_STUN=3 -DPJSIP_MAX_PKT_LEN=8000";
});
in
stdenv.mkDerivation {
pname = "ring-daemon";
version = "2017-07-11";
inherit src;
nativeBuildInputs = [
which
autoreconfHook
automake
libtool
pkg-config
];
buildInputs = [
pjsip'
libyamlcpp
alsa-lib
libpulseaudio
libsamplerate
libsndfile
dbus
dbus_cplusplus
ffmpeg_3
udev
pcre
gsm
speex
boost
opendht
msgpack
gnutls
zlib
jsoncpp
restbed
xorg.libX11
libargon2
cryptopp
openssl
perl
libupnp
speexdsp
];
postInstall = ''
mkdir $out/bin
ln -s $out/lib/ring/dring $out/bin/dring
cp -R ./tools/dringctrl/ $out/
substitute ./tools/dringctrl/dringctrl.py $out/dringctrl/dringctrl.py \
--replace '#!/usr/bin/env python3' "#!${myPython}/bin/python3"
chmod +x $out/dringctrl/dringctrl.py
ln -s $out/dringctrl/dringctrl.py $out/bin/dringctrl.py
'';
meta = with lib; {
description = "A Voice-over-IP software phone";
longDescription = ''
As the SIP/audio daemon and the user interface are separate processes, it
is easy to provide different user interfaces. GNU Ring comes with various
graphical user interfaces and even scripts to control the daemon from the
shell.
'';
homepage = "https://ring.cx";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ taeer olynch ];
platforms = platforms.linux;
# pjsip' fails to compile with the supplied patch set, see: https://hydra.nixos.org/build/68667921/nixlog/4
broken = true;
};
}

View File

@ -1,106 +0,0 @@
/* diff --git a/Makefile b/Makefile */
/* index 33a4e6b..a486eb7 100644 */
/* --- a/Makefile */
/* +++ b/Makefile */
/* @@ -4,7 +4,7 @@ include build/host-$(HOST_NAME).mak */
/* include version.mak */
/* LIB_DIRS = pjlib/build pjlib-util/build pjnath/build third_party/build pjmedia/build pjsip/build */
/* -DIRS = $(LIB_DIRS) pjsip-apps/build $(EXTRA_DIRS) */
/* +DIRS = $(LIB_DIRS) $(EXTRA_DIRS) */
/* ifdef MINSIZE */
/* MAKE_FLAGS := MINSIZE=1 */
diff --git a/pjlib-util/build/Makefile b/pjlib-util/build/Makefile
index cb601cb..862a78a 100644
--- a/pjlib-util/build/Makefile
+++ b/pjlib-util/build/Makefile
@@ -54,7 +54,6 @@ export UTIL_TEST_OBJS += xml.o encryption.o stun.o resolver_test.o test.o \
export UTIL_TEST_CFLAGS += $(_CFLAGS)
export UTIL_TEST_CXXFLAGS += $(_CXXFLAGS)
export UTIL_TEST_LDFLAGS += $(PJLIB_UTIL_LDLIB) $(PJLIB_LDLIB) $(_LDFLAGS)
-export UTIL_TEST_EXE:=pjlib-util-test-$(TARGET_NAME)$(HOST_EXE)
export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT
diff --git a/pjlib/build/Makefile b/pjlib/build/Makefile
index 1e64950..a75fa65 100644
--- a/pjlib/build/Makefile
+++ b/pjlib/build/Makefile
@@ -56,7 +56,6 @@ export TEST_OBJS += activesock.o atomic.o echo_clt.o errno.o exception.o \
export TEST_CFLAGS += $(_CFLAGS)
export TEST_CXXFLAGS += $(_CXXFLAGS)
export TEST_LDFLAGS += $(PJLIB_LDLIB) $(_LDFLAGS)
-export TEST_EXE := pjlib-test-$(TARGET_NAME)$(HOST_EXE)
export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT
diff --git a/pjmedia/build/Makefile b/pjmedia/build/Makefile
index 8012cb7..2ca283a 100644
--- a/pjmedia/build/Makefile
+++ b/pjmedia/build/Makefile
@@ -165,7 +165,6 @@ export PJMEDIA_TEST_LDFLAGS += $(PJMEDIA_CODEC_LDLIB) \
$(PJLIB_UTIL_LDLIB) \
$(PJNATH_LDLIB) \
$(_LDFLAGS)
-export PJMEDIA_TEST_EXE:=pjmedia-test-$(TARGET_NAME)$(HOST_EXE)
export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT
diff --git a/pjnath/build/Makefile b/pjnath/build/Makefile
index 1bc08b5..109f79b 100644
--- a/pjnath/build/Makefile
+++ b/pjnath/build/Makefile
@@ -54,7 +54,6 @@ export PJNATH_TEST_OBJS += ice_test.o stun.o sess_auth.o server.o concur_test.o
export PJNATH_TEST_CFLAGS += $(_CFLAGS)
export PJNATH_TEST_CXXFLAGS += $(_CXXFLAGS)
export PJNATH_TEST_LDFLAGS += $(PJNATH_LDLIB) $(PJLIB_UTIL_LDLIB) $(PJLIB_LDLIB) $(_LDFLAGS)
-export PJNATH_TEST_EXE:=pjnath-test-$(TARGET_NAME)$(HOST_EXE)
###############################################################################
@@ -65,7 +64,6 @@ export PJTURN_CLIENT_OBJS += client_main.o
export PJTURN_CLIENT_CFLAGS += $(_CFLAGS)
export PJTURN_CLIENT_CXXFLAGS += $(_CXXFLAGS)
export PJTURN_CLIENT_LDFLAGS += $(PJNATH_LDLIB) $(PJLIB_UTIL_LDLIB) $(PJLIB_LDLIB) $(_LDFLAGS)
-export PJTURN_CLIENT_EXE:=pjturn-client-$(TARGET_NAME)$(HOST_EXE)
###############################################################################
# Defines for building TURN server application
@@ -76,7 +74,6 @@ export PJTURN_SRV_OBJS += allocation.o auth.o listener_udp.o \
export PJTURN_SRV_CFLAGS += $(_CFLAGS)
export PJTURN_SRV_CXXFLAGS += $(_CXXFLAGS)
export PJTURN_SRV_LDFLAGS += $(PJNATH_LDLIB) $(PJLIB_UTIL_LDLIB) $(PJLIB_LDLIB) $(_LDFLAGS)
-export PJTURN_SRV_EXE:=pjturn-srv-$(TARGET_NAME)$(HOST_EXE)
diff --git a/pjsip/build/Makefile b/pjsip/build/Makefile
index d2a5c2a..7e2ec60 100644
--- a/pjsip/build/Makefile
+++ b/pjsip/build/Makefile
@@ -140,7 +140,7 @@ export PJSUA2_LIB_OBJS += $(OS_OBJS) $(M_OBJS) $(CC_OBJS) $(HOST_OBJS) \
account.o endpoint.o json.o persistent.o types.o \
siptypes.o call.o presence.o media.o
export PJSUA2_LIB_CFLAGS += $(_CFLAGS) $(PJ_VIDEO_CFLAGS)
-export PJSUA2_LIB_CXXFLAGS = $(PJSUA2_LIB_CFLAGS)
+export PJSUA2_LIB_CXXFLAGS = $(_CXXFLAGS) $(PJ_VIDEO_CFLAGS)
export PJSUA2_LIB_LDFLAGS += $(PJSUA_LIB_LDLIB) \
$(PJSIP_UA_LDLIB) \
$(PJSIP_SIMPLE_LDLIB) \
@@ -165,7 +165,6 @@ export PJSUA2_TEST_OBJS += $(OS_OBJS) $(M_OBJS) $(CC_OBJS) $(HOST_OBJS) \
export PJSUA2_TEST_CFLAGS += $(_CFLAGS) $(PJ_VIDEO_CFLAGS)
export PJSUA2_TEST_CXXFLAGS = $(PJSUA2_LIB_CFLAGS)
export PJSUA2_TEST_LDFLAGS += $(PJ_LDXXFLAGS) $(PJ_LDXXLIBS) $(LDFLAGS)
-export PJSUA2_TEST_EXE := pjsua2-test-$(TARGET_NAME)$(HOST_EXE)
export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT
@@ -195,7 +194,6 @@ export TEST_LDFLAGS += $(PJSIP_LDLIB) \
$(PJLIB_UTIL_LDLIB) \
$(PJNATH_LDLIB) \
$(_LDFLAGS)
-export TEST_EXE := pjsip-test-$(TARGET_NAME)$(HOST_EXE)
export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT

View File

@ -1,38 +0,0 @@
{ lib, stdenv
, fetchFromGitHub
, cmake
, asio
, openssl
, patches
}:
stdenv.mkDerivation {
pname = "restbed";
version = "2016-09-15";
src = fetchFromGitHub {
owner = "Corvusoft";
repo = "restbed";
rev = "34187502642144ab9f749ab40f5cdbd8cb17a54a";
sha256 = "1jb38331fcicyiisqdprhq6zwfc6g518fm3l4qw9aiv5k9nqim22";
};
inherit patches;
nativeBuildInputs = [ cmake ];
buildInputs = [ asio openssl ];
meta = with lib; {
description = "HTTP framework for building networked applications";
longDescription = ''
HTTP framework for building networked applications that require seamless
and secure communication, with the flexability to model a range of
business processes. Targeting mobile, tablet, desktop, and embedded
production environments.
'';
homepage = "https://corvusoft.co.uk/";
license = licenses.agpl3;
maintainers = with maintainers; [ taeer ];
platforms = platforms.linux;
};
}

View File

@ -5,14 +5,14 @@
stdenv.mkDerivation rec {
pname = "waypipe-unstable";
version = "0.8.0";
version = "0.8.1";
src = fetchFromGitLab {
domain = "gitlab.freedesktop.org";
owner = "mstoeckl";
repo = "waypipe";
rev = "v${version}";
sha256 = "1qa47ljfvb1vv3h647xwn1j5j8gfmcmdfaz4j8ygnkvj36y87vnz";
sha256 = "1v08dv3dfz420v51ahz7qgv3429073kmgrf8f66s4c3jlpch2pa1";
};
nativeBuildInputs = [ meson ninja pkg-config scdoc ];

View File

@ -0,0 +1,64 @@
{ lib
, stdenv
, fetchurl
, jre
, makeWrapper
}:
stdenv.mkDerivation rec {
pname = "kotlin-native";
version = "1.5.31";
src = let
getArch = {
"aarch64-darwin" = "macos-aarch64";
"x86_64-darwin" = "macos-x86_64";
"x86_64-linux" = "linux-x86_64";
}.${stdenv.system} or (throw "${pname}-${version}: ${stdenv.system} is unsupported.");
getUrl = version: arch:
"https://github.com/JetBrains/kotlin/releases/download/v${version}/kotlin-native-${arch}-${version}.tar.gz";
getHash = arch: {
"macos-aarch64" = "sha256-+9AF42AlPn1/8c14t8u+NN8FkoEmdt6tpmIKU9Rp2AM=";
"macos-x86_64" = "sha256-/eciSo4Eps2TTsv1XU1Rlm+KBmgQT0MWp2s/OAYtGt4=";
"linux-x86_64" = "sha256-Y2t+nlTu+j+h0oRneo7CJx0PmLAkqKYBJ+8go7rargM=";
}.${arch};
in
fetchurl {
url = getUrl version getArch;
hash = getHash getArch;
};
nativeBuildInputs = [
jre
makeWrapper
];
installPhase = ''
runHook preInstall
mkdir -p $out
mv * $out
runHook postInstall
'';
postFixup = ''
wrapProgram $out/bin/run_konan --prefix PATH ":" ${lib.makeBinPath [ jre ]}
'';
meta = {
homepage = "https://kotlinlang.org/";
description = "A modern programming language that makes developers happier";
longDescription = ''
Kotlin/Native is a technology for compiling Kotlin code to native
binaries, which can run without a virtual machine. It is an LLVM based
backend for the Kotlin compiler and native implementation of the Kotlin
standard library.
'';
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ ];
platforms = [ "x86_64-linux" ] ++ lib.platforms.darwin;
};
}

View File

@ -72,6 +72,13 @@ stdenv.mkDerivation rec {
buildInputs = [ fontconfig libffi libtool sqlite gsettings-desktop-schemas gtk3 ]
++ lib.optionals stdenv.isDarwin [ libiconv CoreFoundation ncurses ];
patches = [
# Hardcode variant detection because we wrap the Racket binary making it
# fail to detect its variant at runtime.
# See: https://github.com/NixOS/nixpkgs/issues/114993#issuecomment-812951247
./force-cs-variant.patch
];
preConfigure = ''
unset AR
for f in src/lt/configure src/cs/c/configure src/bc/src/string.c src/ChezScheme/workarea; do
@ -97,10 +104,6 @@ stdenv.mkDerivation rec {
enableParallelBuilding = false;
postFixup = lib.optionalString stdenv.isDarwin ''
wrapProgram $out/bin/drracket --prefix DYLD_LIBRARY_PATH : ${xorg.libX11}/lib
'';
meta = with lib; {
description = "A programmable programming language";
longDescription = ''

View File

@ -0,0 +1,18 @@
Hardcode Racket variant to CS
Hardcode variant detection because nixpkgs wraps the Racket binary making it
fail to detect its variant at runtime.
https://github.com/NixOS/nixpkgs/issues/114993#issuecomment-812951247
--- old/collects/setup/variant.rkt
+++ new/collects/setup/variant.rkt
@@ -7,7 +7,8 @@
(provide variant-suffix
script-variant?)
-(define plain-variant
+(define plain-variant 'cs)
+#;(define plain-variant
(delay/sync
(cond
[(cross-installation?)

View File

@ -1,24 +1,40 @@
{ lib, stdenv, autoreconfHook, pkg-config, fetchFromGitHub, dbus, dleyna-core, glib }:
{ stdenv
, lib
, meson
, ninja
, pkg-config
, fetchFromGitHub
, dleyna-core
, glib
}:
stdenv.mkDerivation rec {
pname = "dleyna-connector-dbus";
version = "0.3.0";
version = "0.4.1";
src = fetchFromGitHub {
owner = "01org";
owner = "phako";
repo = pname;
rev = version;
sha256 = "0vziq5gwjm79yl2swch2mz6ias20nvfddf5cqgk9zbg25cb9m117";
rev = "v${version}";
sha256 = "WDmymia9MD3BRU6BOCzCIMrz9V0ACRzmEGqjbbuUmlA=";
};
nativeBuildInputs = [ autoreconfHook pkg-config ];
buildInputs = [ dbus dleyna-core glib ];
nativeBuildInputs = [
meson
ninja
pkg-config
];
buildInputs = [
dleyna-core
glib
];
meta = with lib; {
description = "A D-Bus API for the dLeyna services";
homepage = "https://01.org/dleyna";
maintainers = [ maintainers.jtojnar ];
homepage = "https://github.com/phako/dleyna-connector-dbus";
maintainers = with maintainers; [ jtojnar ];
platforms = platforms.linux;
license = licenses.lgpl21;
license = licenses.lgpl21Only;
};
}

View File

@ -1,95 +0,0 @@
From bf549a028a5da122b7a4206529711b969c2ecd48 Mon Sep 17 00:00:00 2001
From: Jan Tojnar <jtojnar@gmail.com>
Date: Fri, 1 Sep 2017 13:49:06 +0200
Subject: [PATCH] Search connectors in DLEYNA_CONNECTOR_PATH
Previously, the connectors would only be looked for in a single
directory, specified during compilation. This patch allows to
traverse a list of directories provided by an environment variable.
---
libdleyna/core/connector-mgr.c | 63 ++++++++++++++++++++++++++++--------------
1 file changed, 42 insertions(+), 21 deletions(-)
diff --git a/libdleyna/core/connector-mgr.c b/libdleyna/core/connector-mgr.c
index eafb16c..8041c67 100644
--- a/libdleyna/core/connector-mgr.c
+++ b/libdleyna/core/connector-mgr.c
@@ -34,33 +34,54 @@ const dleyna_connector_t *dleyna_connector_mgr_load(const gchar *name)
const dleyna_connector_t *connector;
dleyna_connector_get_interface_t get_interface;
gchar *path;
+ const gchar *connector_path;
+ gchar **connector_path_list;
+ gsize i;
DLEYNA_LOG_DEBUG("Enter");
- path = g_strdup_printf("%s/%s%s.so", CONNECTOR_DIR,
- DLEYNA_CONNECTOR_LIB_PATTERN, name);
- module = g_module_open(path, G_MODULE_BIND_LAZY);
- g_free(path);
+ connector_path = g_getenv ("DLEYNA_CONNECTOR_PATH");
+ if (!connector_path) {
+ DLEYNA_LOG_DEBUG ("DLEYNA_CONNECTOR_PATH not set");
+ connector_path = CONNECTOR_DIR;
+ } else {
+ DLEYNA_LOG_DEBUG ("DLEYNA_CONNECTOR_PATH set to %s", connector_path);
+ }
+
+ connector_path_list = g_strsplit (connector_path, G_SEARCHPATH_SEPARATOR_S, 0);
+
+ for (i = 0; connector_path_list[i]; i++) {
+ path = g_strdup_printf("%s/%s%s.so", connector_path_list[i],
+ DLEYNA_CONNECTOR_LIB_PATTERN, name);
+ module = g_module_open(path, G_MODULE_BIND_LAZY);
+ g_free(path);
+
+ if (module) {
+ if (!g_connectors)
+ g_connectors = g_hash_table_new(g_direct_hash,
+ g_direct_equal);
+
+ if (g_module_symbol(module, "dleyna_connector_get_interface",
+ (gpointer *)&get_interface)) {
+ connector = get_interface();
+ g_hash_table_insert(g_connectors, (gpointer)connector,
+ module);
+
+ break;
+ } else {
+ connector = NULL;
+ g_module_close(module);
+ DLEYNA_LOG_CRITICAL(
+ "Connector '%s' entry point not found",
+ name);
+ }
- if (module) {
- if (!g_connectors)
- g_connectors = g_hash_table_new(g_direct_hash,
- g_direct_equal);
-
- if (g_module_symbol(module, "dleyna_connector_get_interface",
- (gpointer *)&get_interface)) {
- connector = get_interface();
- g_hash_table_insert(g_connectors, (gpointer)connector,
- module);
- } else {
- connector = NULL;
- g_module_close(module);
- DLEYNA_LOG_CRITICAL(
- "Connector '%s' entry point not found",
- name);
}
+ }
- } else {
+ g_strfreev (connector_path_list);
+
+ if (!module) {
connector = NULL;
DLEYNA_LOG_CRITICAL("Connector '%s' not found", name);
}
--
2.14.1

View File

@ -1,39 +1,30 @@
{ lib, stdenv
{ stdenv
, lib
, fetchFromGitHub
, fetchpatch
, autoreconfHook
, meson
, ninja
, pkg-config
, gupnp
}:
stdenv.mkDerivation rec {
pname = "dleyna-core";
version = "0.6.0";
version = "0.7.0";
outputs = [ "out" "dev" ];
setupHook = ./setup-hook.sh;
src = fetchFromGitHub {
owner = "01org";
owner = "phako";
repo = pname;
rev = "v${version}";
sha256 = "1x5vj5zfk95avyg6g3nf6gar250cfrgla2ixj2ifn8pcick2d9vq";
sha256 = "i4L9+iyAdBNtgImbD54jkjYL5hvzeZ2OaAyFrcFmuG0=";
};
patches = [
./0001-Search-connectors-in-DLEYNA_CONNECTOR_PATH.patch
# fix build with gupnp 1.2
# https://github.com/intel/dleyna-core/pull/52
(fetchpatch {
url = "https://github.com/intel/dleyna-core/commit/41b2e56f67b6fc9c8c256b86957d281644b9b846.patch";
sha256 = "1h758cp65v7qyfpvyqdri7q0gwx85mhdpkb2y8waq735q5q9ib39";
})
];
nativeBuildInputs = [
autoreconfHook
meson
ninja
pkg-config
];
@ -43,9 +34,9 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "Library of utility functions that are used by the higher level dLeyna";
homepage = "https://01.org/dleyna";
maintainers = [ maintainers.jtojnar ];
homepage = "https://github.com/phako/dleyna-core";
maintainers = with maintainers; [ jtojnar ];
platforms = platforms.linux;
license = licenses.lgpl21;
license = licenses.lgpl21Only;
};
}

View File

@ -1,6 +1,8 @@
{ lib, stdenv
{ stdenv
, lib
, fetchFromGitHub
, autoreconfHook
, meson
, ninja
, pkg-config
, dleyna-connector-dbus
, dleyna-core
@ -10,34 +12,35 @@
, gupnp-dlna
, libsoup
, makeWrapper
, docbook-xsl-nons
, libxslt
}:
stdenv.mkDerivation rec {
pname = "dleyna-renderer";
version = "0.6.0";
version = "0.7.1";
src = fetchFromGitHub {
owner = "01org";
owner = "phako";
repo = pname;
rev = version;
sha256 = "0jy54aq8hgrvzchrvfzqaj4pcn0cfhafl9bv8a9p6j82yjk4pvpp";
rev = "v${version}";
sha256 = "EaTE5teMkVDHoJuTLdqcsIL7OyM+tOz85T5D9V3KDoo=";
};
patches = [
# fix build with gupnp 1.2
# comes from arch linux packaging https://git.archlinux.org/svntogit/packages.git/tree/trunk/gupnp-1.2.diff?h=packages/dleyna-renderer
./gupnp-1.2.diff
];
nativeBuildInputs = [
autoreconfHook
meson
ninja
pkg-config
makeWrapper
# manpage
docbook-xsl-nons
libxslt # for xsltproc
];
buildInputs = [
dleyna-core
dleyna-connector-dbus
dleyna-connector-dbus # runtime dependency to be picked up to DLEYNA_CONNECTOR_PATH
gssdp
gupnp
gupnp-av
@ -52,9 +55,9 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "Library to discover and manipulate Digital Media Renderers";
homepage = "https://01.org/dleyna";
maintainers = [ maintainers.jtojnar ];
homepage = "https://github.com/phako/dleyna-renderer";
maintainers = with maintainers; [ jtojnar ];
platforms = platforms.linux;
license = licenses.lgpl21;
license = licenses.lgpl21Only;
};
}

View File

@ -1,130 +0,0 @@
configure.ac | 4 ++--
libdleyna/renderer/device.c | 51 +++++++++++++++++++++++++++++++++++++++++++--
libdleyna/renderer/upnp.c | 4 ++--
3 files changed, 53 insertions(+), 6 deletions(-)
diff --git c/configure.ac i/configure.ac
index 271ee92..364659d 100644
--- c/configure.ac
+++ i/configure.ac
@@ -38,8 +38,8 @@ LT_LANG([C])
PKG_PROG_PKG_CONFIG(0.16)
PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.28])
PKG_CHECK_MODULES([GIO], [gio-2.0 >= 2.28])
-PKG_CHECK_MODULES([GSSDP], [gssdp-1.0 >= 0.13.2])
-PKG_CHECK_MODULES([GUPNP], [gupnp-1.0 >= 0.20.5])
+PKG_CHECK_MODULES([GSSDP], [gssdp-1.2 >= 1.2.0])
+PKG_CHECK_MODULES([GUPNP], [gupnp-1.2 >= 1.2.0])
PKG_CHECK_MODULES([GUPNPAV], [gupnp-av-1.0 >= 0.11.5])
PKG_CHECK_MODULES([GUPNPDLNA], [gupnp-dlna-2.0 >= 0.9.4])
PKG_CHECK_MODULES([SOUP], [libsoup-2.4 >= 2.28.2])
diff --git c/libdleyna/renderer/device.c i/libdleyna/renderer/device.c
index 7acef89..f6d571e 100644
--- c/libdleyna/renderer/device.c
+++ i/libdleyna/renderer/device.c
@@ -2121,33 +2121,80 @@ exit:
return;
}
+typedef struct
+{
+ GMainLoop *loop;
+ GUPnPServiceIntrospection *introspection;
+ GError **error;
+} GetIntrospectionAsyncData;
+
+static void
+get_introspection_async_cb (GUPnPServiceInfo *info,
+ GUPnPServiceIntrospection *introspection,
+ const GError *error,
+ gpointer user_data)
+{
+ GetIntrospectionAsyncData *data = user_data;
+ data->introspection = introspection;
+ if (data->error)
+ *data->error = g_error_copy (error);
+ g_main_loop_quit (data->loop);
+}
+
+static GUPnPServiceIntrospection *
+_gupnp_service_info_get_introspection (GUPnPServiceInfo *info,
+ GError **error)
+{
+ GetIntrospectionAsyncData data;
+ GMainContext *context;
+
+ context = g_main_context_new ();
+ data.loop = g_main_loop_new (context, FALSE);
+ data.error = error;
+
+ g_main_context_push_thread_default (context);
+
+ gupnp_service_info_get_introspection_async (info,
+ get_introspection_async_cb,
+ &data);
+
+ g_main_loop_run (data.loop);
+
+ g_main_context_pop_thread_default (context);
+
+ g_main_loop_unref (data.loop);
+ g_main_context_unref (context);
+
+ return data.introspection;
+}
+
static gboolean prv_get_av_service_states_values(GUPnPServiceProxy *av_proxy,
GVariant **mpris_tp_speeds,
GPtrArray **upnp_tp_speeds,
double *min_rate,
double *max_rate,
gboolean *can_get_byte_pos)
{
const GUPnPServiceStateVariableInfo *svi;
const GUPnPServiceActionInfo *sai;
GUPnPServiceIntrospection *introspection;
GError *error = NULL;
GVariant *speeds = NULL;
GList *allowed_values;
gpointer weak_ref = NULL;
gboolean device_alive = TRUE;
/* TODO: this weak_ref hack is needed as
gupnp_service_info_get_introspection iterates the main loop.
This can result in our device getting deleted before this
function returns. Ultimately, this code needs to be re-written
to use gupnp_service_info_get_introspection_async but this cannot
really be done until GUPnP provides a way to cancel this function. */
weak_ref = av_proxy;
g_object_add_weak_pointer(G_OBJECT(av_proxy), &weak_ref);
- introspection = gupnp_service_info_get_introspection(
+ introspection = _gupnp_service_info_get_introspection(
GUPNP_SERVICE_INFO(av_proxy),
&error);
@@ -2215,7 +2262,7 @@ static gboolean prv_get_rc_service_states_values(GUPnPServiceProxy *rc_proxy,
weak_ref = rc_proxy;
g_object_add_weak_pointer(G_OBJECT(rc_proxy), &weak_ref);
- introspection = gupnp_service_info_get_introspection(
+ introspection = _gupnp_service_info_get_introspection(
GUPNP_SERVICE_INFO(rc_proxy),
&error);
diff --git c/libdleyna/renderer/upnp.c i/libdleyna/renderer/upnp.c
index 17cbda7..068912b 100644
--- c/libdleyna/renderer/upnp.c
+++ i/libdleyna/renderer/upnp.c
@@ -243,8 +243,8 @@ static void prv_server_unavailable_cb(GUPnPControlPoint *cp,
udn = gupnp_device_info_get_udn((GUPnPDeviceInfo *)proxy);
- ip_address = gupnp_context_get_host_ip(
- gupnp_control_point_get_context(cp));
+ ip_address = gssdp_client_get_host_ip(
+ GSSDP_CLIENT(gupnp_control_point_get_context(cp)));
if (!udn || !ip_address)
goto on_error;

View File

@ -1,7 +1,8 @@
{ lib, stdenv
{ stdenv
, lib
, fetchFromGitHub
, fetchpatch
, autoreconfHook
, meson
, ninja
, makeWrapper
, pkg-config
, dleyna-core
@ -15,33 +16,25 @@
stdenv.mkDerivation rec {
pname = "dleyna-server";
version = "0.6.0";
version = "0.7.1";
src = fetchFromGitHub {
owner = "01org";
owner = "phako";
repo = pname;
rev = version;
sha256 = "13a2i6ms27s46yxdvlh2zm7pim7jmr5cylnygzbliz53g3gxxl3j";
rev = "v${version}";
sha256 = "bScgwJGPrCaLrw67WnvSpINgq5Vv9LJ/I0MUP9BeO2E=";
};
patches = [
# fix build with gupnp 1.2
# https://github.com/intel/dleyna-server/pull/161
(fetchpatch {
url = "https://github.com/intel/dleyna-server/commit/96c01c88363d6e5e9b7519bc4e8b5d86cf783e1f.patch";
sha256 = "0p8fn331x2whvn6skxqvfzilx0m0yx2q5mm2wh2625l396m3fzmm";
})
];
nativeBuildInputs = [
autoreconfHook
meson
ninja
pkg-config
makeWrapper
];
buildInputs = [
dleyna-core
dleyna-connector-dbus
dleyna-connector-dbus # runtime dependency to be picked up to DLEYNA_CONNECTOR_PATH
gssdp
gupnp
gupnp-av
@ -56,9 +49,9 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "Library to discover, browse and manipulate Digital Media Servers";
homepage = "https://01.org/dleyna";
maintainers = [ maintainers.jtojnar ];
homepage = "https://github.com/phako/dleyna-server";
maintainers = with maintainers; [ jtojnar ];
platforms = platforms.linux;
license = licenses.lgpl21;
license = licenses.lgpl21Only;
};
}

View File

@ -1,28 +1,28 @@
{ lib, stdenv
{ stdenv
, lib
, fetchurl
, meson
, ninja
, pkg-config
, gobject-introspection
, vala
, gtk-doc
, docbook_xsl
, docbook_xml_dtd_412
, gi-docgen
, python3
, libsoup
, gtk3
, glib
, gnome
, gssdp-tools
}:
stdenv.mkDerivation rec {
pname = "gssdp";
version = "1.2.3";
version = "1.4.0.1";
outputs = [ "out" "bin" "dev" "devdoc" ];
outputs = [ "out" "dev" "devdoc" ];
src = fetchurl {
url = "mirror://gnome/sources/gssdp/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "1s57i8a8wnnxnsfl27cq4503dkdlzbrhry5zpg23sfqfffvdqqx2";
sha256 = "hnaEnVf7giuHKIVtut6/OGf4nuR6DsR6IARdAR9DFYI=";
};
nativeBuildInputs = [
@ -31,14 +31,12 @@ stdenv.mkDerivation rec {
pkg-config
gobject-introspection
vala
gtk-doc
docbook_xsl
docbook_xml_dtd_412
gi-docgen
python3
];
buildInputs = [
libsoup
gtk3
];
propagatedBuildInputs = [
@ -47,20 +45,35 @@ stdenv.mkDerivation rec {
mesonFlags = [
"-Dgtk_doc=true"
"-Dsniffer=false"
];
doCheck = true;
postFixup = ''
# Move developer documentation to devdoc output.
# Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back.
find -L "$out/share/doc" -type f -regex '.*\.devhelp2?' -print0 \
| while IFS= read -r -d ''' file; do
moveToOutput "$(dirname "''${file/"$out/"/}")" "$devdoc"
done
'';
passthru = {
updateScript = gnome.updateScript {
packageName = pname;
};
tests = {
inherit gssdp-tools;
};
};
meta = with lib; {
description = "GObject-based API for handling resource discovery and announcement over SSDP";
homepage = "http://www.gupnp.org/";
license = licenses.lgpl2Plus;
maintainers = teams.gnome.members;
platforms = platforms.all;
};
}

View File

@ -0,0 +1,42 @@
diff --git a/libgssdp/gssdp-client-private.h b/libgssdp/gssdp-client-private.h
index ac31247..241c054 100644
--- a/libgssdp/gssdp-client-private.h
+++ b/libgssdp/gssdp-client-private.h
@@ -10,7 +10,11 @@
#ifndef GSSDP_CLIENT_PRIVATE_H
#define GSSDP_CLIENT_PRIVATE_H
+#ifdef GSSDP_TOOLS
+#include <libgssdp/gssdp-client.h>
+#else
#include "gssdp-client.h"
+#endif
G_BEGIN_DECLS
diff --git a/tools/meson.build b/tools/meson.build
index 40eb8e3..5db545b 100644
--- a/tools/meson.build
+++ b/tools/meson.build
@@ -1,3 +1,10 @@
+project('gssdp-tools', 'c', version: '@version@')
+gnome = import('gnome')
+
+gssdp = dependency('gssdp-1.2')
+gtk = dependency('gtk4', version : '>= 4')
+libsoup = dependency('libsoup-2.4', version : '>= 2.26.1')
+
resource = gnome.compile_resources(
'org.gupnp.GSSDP.DeviceSniffer',
'gssdp-device-sniffer.gresource.xml',
@@ -12,7 +19,9 @@ sniffer = executable(
'main-window.h',
resource
],
- dependencies : [gssdp, gtk],
+ dependencies : [gssdp, gtk, libsoup],
+ c_args: ['-DGSSDP_TOOLS'],
+ include_directories : [include_directories('..')],
install: true,
export_dynamic : true,
gui_app : true

View File

@ -0,0 +1,50 @@
{ stdenv
, lib
, substituteAll
, meson
, ninja
, pkg-config
, wrapGAppsHook4
, gssdp
, gtk4
, libsoup
}:
stdenv.mkDerivation rec {
pname = "gssdp-tools";
inherit (gssdp) version src;
patches = [
# Allow building tools separately from the library.
# This is needed to break the depenency cycle.
(substituteAll {
src = ./standalone-tools.patch;
inherit version;
})
];
nativeBuildInputs = [
meson
ninja
pkg-config
wrapGAppsHook4
];
buildInputs = [
gssdp
gtk4
libsoup
];
preConfigure = ''
cd tools
'';
meta = with lib; {
description = "Device Sniffer tool based on GSSDP framework";
homepage = "http://www.gupnp.org/";
license = licenses.lgpl2Plus;
maintainers = gssdp.meta.maintainers;
platforms = platforms.all;
};
}

View File

@ -1,10 +1,13 @@
{ lib, stdenv
{ stdenv
, lib
, fetchurl
, meson
, ninja
, pkg-config
, gobject-introspection
, vala
, gtk-doc
, docbook_xsl
, docbook-xsl-nons
, docbook_xml_dtd_412
, glib
, libxml2
@ -13,21 +16,23 @@
stdenv.mkDerivation rec {
pname = "gupnp-av";
version = "0.12.11";
version = "0.14.0";
outputs = [ "out" "dev" "devdoc" ];
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "1p3grslwqm9bc8rmpn4l48d7v9s84nina4r9xbd932dbj8acz7b8";
sha256 = "IK7VRvyILnij8YagyLzlyEHMOkS36lKCmPvcgllvsVY=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
gobject-introspection
vala
gtk-doc
docbook_xsl
docbook-xsl-nons
docbook_xml_dtd_412
];
@ -36,8 +41,8 @@ stdenv.mkDerivation rec {
libxml2
];
configureFlags = [
"--enable-gtk-doc"
mesonFlags = [
"-Dgtk_doc=true"
];
doCheck = true;

View File

@ -1,10 +1,13 @@
{ lib, stdenv
{ stdenv
, lib
, fetchurl
, meson
, ninja
, pkg-config
, gobject-introspection
, vala
, gtk-doc
, docbook_xsl
, docbook-xsl-nons
, docbook_xml_dtd_412
, libxml2
, gst_all_1
@ -13,21 +16,23 @@
stdenv.mkDerivation rec {
pname = "gupnp-dlna";
version = "0.10.5";
version = "0.12.0";
outputs = [ "out" "dev" "devdoc" ];
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "0spzd2saax7w776p5laixdam6d7smyynr9qszhbmq7f14y13cghj";
sha256 = "PVO5b4W8VijTPjZ+yb8q2zjvKzTXrQQ0proM9K2QSOY=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
gobject-introspection
vala
gtk-doc
docbook_xsl
docbook-xsl-nons
docbook_xml_dtd_412
];
@ -36,8 +41,8 @@ stdenv.mkDerivation rec {
gst_all_1.gst-plugins-base
];
configureFlags = [
"--enable-gtk-doc"
mesonFlags = [
"-Dgtk_doc=true"
];
doCheck = true;

View File

@ -0,0 +1,55 @@
From a3461f69222ef23b2edd411c5fc8daefea556a2c Mon Sep 17 00:00:00 2001
From: Jan Tojnar <jtojnar@gmail.com>
Date: Wed, 20 Oct 2021 20:55:29 +0200
Subject: [PATCH] pkg-config: Declare header dependencies as public
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The headers include libsoup and libxml2 headers but those libraries are only
listed in Requires.private. This does not matter for upstream pkg-config
because it uses Cflags from libraries in Requires.private as well but as our
pkg-config is patched to only use Requires.private for static linking.
Lets add libsoup-2.4 and libxml-2.0 to Requires rather than Requires.private
to make the reverse dependencies correctly find their headers.
---
libgupnp/meson.build | 2 +-
meson.build | 3 ++-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/libgupnp/meson.build b/libgupnp/meson.build
index cb8a102..5fda9d8 100644
--- a/libgupnp/meson.build
+++ b/libgupnp/meson.build
@@ -129,7 +129,7 @@ pkg.generate(
libgupnp,
subdirs: 'gupnp-1.2',
name : 'gupnp-1.2',
- requires : ['glib-2.0', 'gio-2.0', 'gssdp-1.2'],
+ requires : ['glib-2.0', 'gio-2.0', 'gssdp-1.2', 'libsoup-2.4 >= ' + libsoup_version, 'libxml-2.0'],
description : 'GObject-based UPnP library',
version : meson.project_version(),
filebase : 'gupnp-1.2'
diff --git a/meson.build b/meson.build
index 3790bcf..c96a983 100644
--- a/meson.build
+++ b/meson.build
@@ -25,12 +25,13 @@ gssdp_dep = dependency('gssdp-1.2', version : '>= 1.3.0', default_options: ['sni
gio_unix = dependency('gio-unix-2.0', version: '>= 2.44', required: host_machine.system() != 'windows')
+libsoup_version = '2.48.0'
dependencies = [
dependency('glib-2.0', version : '>= ' + glib_version),
dependency('gio-2.0', version : '>= ' + glib_version),
dependency('gmodule-2.0', version : '>= ' + glib_version),
dependency('gobject-2.0', version : '>= ' + glib_version),
- dependency('libsoup-2.4', version : '>= 2.48.0'),
+ dependency('libsoup-2.4', version : '>= ' + libsoup_version),
gssdp_dep,
dependency('libxml-2.0'),
]
--
2.33.0

View File

@ -1,6 +1,6 @@
{ lib, stdenv
{ stdenv
, lib
, fetchurl
, fetchpatch
, meson
, ninja
, pkg-config
@ -20,21 +20,18 @@
stdenv.mkDerivation rec {
pname = "gupnp";
version = "1.2.4";
version = "1.4.0";
outputs = [ "out" "dev" "devdoc" ];
src = fetchurl {
url = "mirror://gnome/sources/gupnp/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "sha256-96AwfqUfXkTRuDL0k92QRURKOk4hHvhd/Zql3W6up9E=";
sha256 = "sha256-WQ/7ArhNoqGuxo/VNLxArxs33T9iI/nRV3/EirSL428=";
};
patches = [
(fetchpatch {
name = "CVE-2021-33516.patch";
url = "https://gitlab.gnome.org/GNOME/gupnp/-/commit/ca6ec9dcb26fd7a2a630eb6a68118659b589afac.patch";
sha256 = "sha256-G7e/xNQB7Kp2fPzqVeD/cH3h1co9hZXh55QOUBnAnvU=";
})
# Bring .pc file in line with our patched pkg-config.
./0001-pkg-config-Declare-header-dependencies-as-public.patch
];
nativeBuildInputs = [

View File

@ -6,13 +6,13 @@
stdenv.mkDerivation rec {
pname = "intel-gmmlib";
version = "21.3.1";
version = "21.3.2";
src = fetchFromGitHub {
owner = "intel";
repo = "gmmlib";
rev = "intel-gmmlib-${version}";
sha256 = "0dzqfgbd0fxl8rxgf5nmj1jd4izzaqfb0s53l96qwz1j57q5ybj5";
sha256 = "0whi7dmdv36d5l90yhjyv2raj2j165q82h7df9a6wf2abvsaqvdh";
};
nativeBuildInputs = [ cmake ];

View File

@ -65,7 +65,7 @@ assert enableGeoLocation -> geoclue2 != null;
stdenv.mkDerivation rec {
pname = "webkitgtk";
version = "2.34.0";
version = "2.34.1";
outputs = [ "out" "dev" ];
@ -73,7 +73,7 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "https://webkitgtk.org/releases/${pname}-${version}.tar.xz";
sha256 = "sha256-iAyO5ib2cBn2dVfKCeWaI+zyReYPYXMhXxqII8sJrzQ=";
sha256 = "sha256-RDwTFnBd4CR0F0joX+MjJNKZ2e5o5v6zQLieSgQHPe4=";
};
patches = lib.optionals stdenv.isLinux [

View File

@ -2,9 +2,9 @@
buildDunePackage rec {
pname = "lambdasoup";
version = "0.7.2";
version = "0.7.3";
minimumOCamlVersion = "4.02";
minimalOCamlVersion = "4.02";
useDune2 = true;
@ -12,7 +12,7 @@ buildDunePackage rec {
owner = "aantron";
repo = pname;
rev = version;
sha256 = "0php51lyz3ll0psazjd59yw02xb9w84150gkyiwmn3fa0iq8nf7m";
sha256 = "sha256:1wclkn1pl0d150dw0xswb29jc7y1q9mhipff1pnsc1hli3pyvvb7";
};
propagatedBuildInputs = [ markup ];

View File

@ -0,0 +1,49 @@
{ lib, fetchFromGitHub, stdenv
, gtest, makeWrapper, meson, ninja, pkg-config
, alsa-lib, fluidsynth, libGL, libGLU, libogg, libpng, munt, opusfile, SDL2, SDL2_net
}:
stdenv.mkDerivation rec {
pname = "dosbox-staging";
version = "0.77.1";
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = "v${version}";
sha256 = "07jwmmm1bhfxavlhl854cj8l5iy5hqx5hpwkkjbcwqg7yh9jfs2x";
};
nativeBuildInputs = [ gtest makeWrapper meson ninja pkg-config ];
buildInputs = [ alsa-lib fluidsynth libGL libGLU libogg libpng munt opusfile SDL2 SDL2_net ];
hardeningDisable = [ "format" ];
mesonFlags = [
"--buildtype=release"
"-Ddefault_library=static"
"-Db_asneeded=true"
"-Dtry_static_libs=png"
"-Dfluidsynth:enable-floats=true"
"-Dfluidsynth:try-static-deps=true"
];
postFixup = ''
# Rename binary, add a wrapper, and copy manual to avoid conflict with vanilla dosbox.
# Doing it this way allows us to work with frontends and launchers that expect the
# binary to be named dosbox, but get out of the way of vanilla dosbox if the user
# desires to install that as well.
mv $out/bin/dosbox $out/bin/${pname}
makeWrapper $out/bin/dosbox-staging $out/bin/dosbox
cp $out/share/man/man1/dosbox.1.gz $out/share/man/man1/${pname}.1.gz
'';
meta = with lib; {
description = "A modernized DOS emulator";
homepage = "https://dosbox-staging.github.io/";
license = licenses.gpl2;
maintainers = with maintainers; [ joshuafern ];
platforms = platforms.unix;
priority = 101;
};
}

View File

@ -15,16 +15,18 @@
, libpulseaudio
, sndio
, mesa
, vulkan-loader
, wayland
}:
mkDerivation rec {
pname = "duckstation";
version = "unstable-2021-10-01";
version = "unstable-2021-10-19";
src = fetchFromGitHub {
owner = "stenzek";
repo = pname;
rev = "a7096f033ecca48827fa55825fc0d0221265f1c2";
sha256 = "sha256-e/Y1TJBuY76q3/0MCAqu9AJzLxIoJ8FJUV5vc/AgcjA=";
rev = "96f4fdf8d88ff3a120f3bc409a6a6487cdcbd55f";
sha256 = "sha256-WWsi7kmFEYES2BoNKIFF1+lKHJGP3hbTZ9o3eWp+EcE=";
};
nativeBuildInputs = [ cmake ninja pkg-config extra-cmake-modules wrapQtAppsHook qttools ];
@ -38,11 +40,13 @@ mkDerivation rec {
mesa
curl
libpulseaudio
wayland
vulkan-loader
];
cmakeFlags = [
"-DUSE_DRMKMS=ON"
"-DUSE_EGL=ON"
#"-DUSE_DRMKMS=ON" # Broken in combination with Wayland, https://github.com/stenzek/duckstation/issues/2630
"-DUSE_WAYLAND=ON"
];
postPatch = ''
@ -76,9 +80,13 @@ mkDerivation rec {
runHook postCheck
'';
qtWrapperArgs = [
"--prefix LD_LIBRARY_PATH : ${vulkan-loader}/lib"
];
# TODO:
# - vulkan graphics backend (OpenGL works).
# - default sound backend (cubeb) does not work, but SDL does.
# - default sound backend (cubeb) does not work, but SDL does. Strangely, switching to cubeb while a game is running makes it work.
meta = with lib; {
description = "PlayStation 1 emulator focusing on playability, speed and long-term maintainability";
homepage = "https://github.com/stenzek/duckstation";

View File

@ -3,8 +3,8 @@ vscode-utils.buildVscodeMarketplaceExtension rec {
mktplcRef = {
name = "terraform";
publisher = "hashicorp";
version = "2.15.0";
sha256 = "0bqf9ry0idqw61714dc6y1rh5js35mi14q19yqhiwayyfakwraq9";
version = "2.16.0";
sha256 = "0ya0xmmn4rmbvh8mxz466msbb3y2xqi4bg9dgymy2wq8cwzbn81b";
};
patches = [ ./fix-terraform-ls.patch ];

View File

@ -1,5 +1,5 @@
diff --git a/out/serverPath.js b/out/serverPath.js
index ffb1b80..990ca2b 100644
index d25f5d4..289f0dd 100644
--- a/out/serverPath.js
+++ b/out/serverPath.js
@@ -8,7 +8,13 @@ exports.CUSTOM_BIN_PATH_OPTION_NAME = 'languageServer.pathToBinary';
@ -16,4 +16,4 @@ index ffb1b80..990ca2b 100644
+ }
}
installPath() {
return this.context.asAbsolutePath(INSTALL_FOLDER_NAME);
return path.join(this.context.globalStorageUri.fsPath, INSTALL_FOLDER_NAME);

View File

@ -2,16 +2,16 @@
buildGoModule rec {
pname = "matrix-dendrite";
version = "0.4.1";
version = "0.5.0";
src = fetchFromGitHub {
owner = "matrix-org";
repo = "dendrite";
rev = "v${version}";
sha256 = "sha256-F2e+peM7DBihmos/oPar36UDHkibmlzIknCjMauOph8=";
sha256 = "iCxfsIOZqPQjY0u2Zw3PCe0IJDczqDjcTUA3U5zXbgM=";
};
vendorSha256 = "sha256-M6mnFO+SInZNvtwMa02TvHIg14Ve7swlGcYfsQFioxQ=";
vendorSha256 = "sha256-XS1B6Nl5zGevxE1SohpoTwT/bXn5udYV5ANVFn7eTyA=";
passthru.tests = {
inherit (nixosTests) dendrite;

View File

@ -1,4 +1,4 @@
{ lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config, glib, systemd, boost
{ lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config, glib, systemd, boost, fmt
# Darwin inputs
, AudioToolbox, AudioUnit
# Inputs
@ -11,7 +11,7 @@
# Filters
, libsamplerate
# Outputs
, alsa-lib, libjack2, libpulseaudio, libshout
, alsa-lib, libjack2, libpulseaudio, libshout, pipewire
# Misc
, icu, sqlite, avahi, dbus, pcre, libgcrypt, expat
# Services
@ -65,6 +65,7 @@ let
# Output plugins
alsa = [ alsa-lib ];
jack = [ libjack2 ];
pipewire = [ pipewire ];
pulse = [ libpulseaudio ];
shout = [ libshout ];
# Commercial services
@ -116,18 +117,19 @@ let
in stdenv.mkDerivation rec {
pname = "mpd";
version = "0.22.11";
version = "0.23.2";
src = fetchFromGitHub {
owner = "MusicPlayerDaemon";
repo = "MPD";
rev = "v${version}";
sha256 = "sha256-X+FnZ5W1p9GuOSIxTSp1Yok+kKsLjNPOKZkJSCYk8kM=";
sha256 = "sha256-gn06t8S0hh5xe5V1vnXVHSb0FwxY40onUV+Bt7oL9ic=";
};
buildInputs = [
glib
boost
fmt
# According to the configurePhase of meson, gtest is considered a
# runtime dependency. Quoting:
#

View File

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "kopia";
version = "0.9.3";
version = "0.9.4";
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = "v${version}";
sha256 = "sha256-G7pda+0CsK02OkyVgDmZffMheEm7ZIM4ylyjAIfmhTI=";
sha256 = "sha256-+zfkFusLoYITIStk3ZobeuN3MFeY5T6pbiUEc4IT1UA=";
};
vendorSha256 = "sha256-v81YkImg8GdI5locfsU4dg2JyO7XB24mfHRIZ+k8QBA=";

View File

@ -14,13 +14,13 @@ let
bees = stdenv.mkDerivation rec {
pname = "bees";
version = "0.6.5";
version = "0.7";
src = fetchFromGitHub {
owner = "Zygo";
repo = "bees";
rev = "v${version}";
sha256 = "11ppbf23b8ngzfy02am0skxlybzmgsp6kna21jimb01x9pp1q7l7";
sha256 = "sha256-hD6/pMRnQgPqL1M6QOuRka6ESJv9kjeKy+29nRMTY1o=";
};
buildInputs = [

View File

@ -1,5 +1,7 @@
{ lib, stdenv
{ stdenv
, lib
, fetchurl
, fetchpatch
, meson
, ninja
, gupnp
@ -16,13 +18,26 @@
stdenv.mkDerivation rec {
pname = "gupnp-tools";
version = "0.10.0";
version = "0.10.1";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "13d1qr1avz9r76989nvgxhhclmqzr025xjk4rfnja94fpbspznj1";
sha256 = "TqltFnRis6VI78T8TqCJ/lGNfSm+NJ0czomCuf+1O0o=";
};
patches = [
# Fix compilation with -Werror=format-security.
(fetchpatch {
url = "https://gitlab.gnome.org/GNOME/gupnp-tools/commit/d738baae3bffaf6a8dfc12f5fe1ea13168fe2e48.patch";
sha256 = "wrORH4y9Yb0YGAsjzoeN2MM07y9o+91kx078RH0G76w=";
})
# Fix missing variable reference caused by the previous patch.
(fetchpatch {
url = "https://gitlab.gnome.org/GNOME/gupnp-tools/commit/9b852d91175bc7607ad845459ba29d07a16fcbce.patch";
sha256 = "WjEBN/+snJSIg4SUP5iChdj2auIyzePI0TH3Ilks7fk=";
})
];
nativeBuildInputs = [
meson
ninja

View File

@ -2,7 +2,7 @@
ocamlPackages.buildDunePackage rec {
pname = "soupault";
version = "3.1.0";
version = "3.2.0";
useDune2 = true;
@ -10,7 +10,7 @@ ocamlPackages.buildDunePackage rec {
owner = "dmbaturin";
repo = pname;
rev = version;
sha256 = "sha256-SVNC2DbdciunSKTCmmX0SqaEXMe1DkVX4VJTqriI8Y4=";
sha256 = "sha256-T1K/ntCK19LfPmMtaAa9c1JjSL+5dax2SNhM4yUFln4=";
};
buildInputs = with ocamlPackages; [
@ -23,6 +23,7 @@ ocamlPackages.buildDunePackage rec {
lambdasoup
lua-ml
logs
markup
odate
otoml
re

View File

@ -3534,8 +3534,6 @@ with pkgs;
replay-sorcery = callPackage ../tools/video/replay-sorcery { };
ring-daemon = callPackage ../applications/networking/instant-messengers/ring-daemon { };
ripasso-cursive = callPackage ../tools/security/ripasso/cursive.nix {
inherit (darwin.apple_sdk.frameworks) AppKit Security;
};
@ -5968,6 +5966,8 @@ with pkgs;
gssdp = callPackage ../development/libraries/gssdp { };
gssdp-tools = callPackage ../development/libraries/gssdp/tools.nix { };
grype = callPackage ../tools/security/grype { };
gt5 = callPackage ../tools/system/gt5 { };
@ -12279,6 +12279,7 @@ with pkgs;
koka = haskell.lib.justStaticExecutables (haskellPackages.callPackage ../development/compilers/koka { });
kotlin = callPackage ../development/compilers/kotlin { };
kotlin-native = callPackage ../development/compilers/kotlin/native.nix { };
lazarus = callPackage ../development/compilers/fpc/lazarus.nix {
fpc = fpc;
@ -31877,6 +31878,8 @@ with pkgs;
dosbox = callPackage ../misc/emulators/dosbox { };
dosbox-staging = callPackage ../misc/emulators/dosbox-staging { };
emu2 = callPackage ../misc/emulators/emu2 { };
apt = callPackage ../tools/package-management/apt { };
@ -33401,6 +33404,13 @@ with pkgs;
btcdeb = callPackage ../applications/blockchains/btcdeb { };
inherit (callPackage ../applications/networking/instant-messengers/jami {
# TODO: remove once `udev` is `systemdMinimal` everywhere.
udev = systemdMinimal;
jack = libjack2;
})
jami-daemon jami-libclient jami-client-gnome jami-client-qt;
jitsi-meet-electron = callPackage ../applications/networking/instant-messengers/jitsi-meet-electron {
electron = electron_13;
};

View File

@ -57,6 +57,7 @@ mapAliases ({
MechanicalSoup = mechanicalsoup; # added 2021-06-01
pam = python-pam; # added 2020-09-07.
PasteDeploy = pastedeploy;
powerlineMemSegment = powerline-mem-segment;
privacyidea = throw "renamed to pkgs.privacyidea"; # added 2021-06-20
prometheus_client = prometheus-client; # added 2021-06-10
prompt_toolkit = prompt-toolkit;

View File

@ -5847,7 +5847,7 @@ in {
powerline = callPackage ../development/python-modules/powerline { };
powerlineMemSegment = callPackage ../development/python-modules/powerline-mem-segment { };
powerline-mem-segment = callPackage ../development/python-modules/powerline-mem-segment { };
pox = callPackage ../development/python-modules/pox { };