mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-16 23:03:40 +01:00
Merge master into staging-next
This commit is contained in:
commit
24cfffaa7a
49 changed files with 1085 additions and 682 deletions
|
@ -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")
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
}
|
|
@ -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;
|
||||
};
|
||||
}
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
123
pkgs/applications/networking/instant-messengers/jami/daemon.nix
Normal file
123
pkgs/applications/networking/instant-messengers/jami/daemon.nix
Normal 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;
|
||||
};
|
||||
}
|
|
@ -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; };
|
||||
}
|
|
@ -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
|
|
@ -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;
|
||||
};
|
||||
}
|
42
pkgs/applications/networking/instant-messengers/jami/update.sh
Executable file
42
pkgs/applications/networking/instant-messengers/jami/update.sh
Executable 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"
|
|
@ -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;
|
||||
};
|
||||
}
|
|
@ -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
|
|
@ -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;
|
||||
};
|
||||
}
|
|
@ -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 ];
|
||||
|
|
64
pkgs/development/compilers/kotlin/native.nix
Normal file
64
pkgs/development/compilers/kotlin/native.nix
Normal 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;
|
||||
};
|
||||
}
|
|
@ -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 = ''
|
||||
|
|
18
pkgs/development/interpreters/racket/force-cs-variant.patch
Normal file
18
pkgs/development/interpreters/racket/force-cs-variant.patch
Normal 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?)
|
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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;
|
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
|
42
pkgs/development/libraries/gssdp/standalone-tools.patch
Normal file
42
pkgs/development/libraries/gssdp/standalone-tools.patch
Normal 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
|
50
pkgs/development/libraries/gssdp/tools.nix
Normal file
50
pkgs/development/libraries/gssdp/tools.nix
Normal 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;
|
||||
};
|
||||
}
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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.
|
||||
|
||||
Let’s 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
|
||||
|
|
@ -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 = [
|
||||
|
|
|
@ -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 ];
|
||||
|
|
|
@ -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 [
|
||||
|
|
|
@ -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 ];
|
||||
|
|
49
pkgs/misc/emulators/dosbox-staging/default.nix
Normal file
49
pkgs/misc/emulators/dosbox-staging/default.nix
Normal 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;
|
||||
};
|
||||
}
|
|
@ -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";
|
||||
|
|
|
@ -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 ];
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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:
|
||||
#
|
||||
|
|
|
@ -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=";
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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 { };
|
||||
|
||||
|
|
Loading…
Reference in a new issue