Merge branch 'master' into staging-next

Reverted https://github.com/NixOS/nixpkgs/pull/115228 for kodi to avoid conflict.

It does not look like unzip would be used but not investigating now to speed up merge conflict resolution.

Changed files
+1950 -1053
nixos
doc
manual
release-notes
modules
services
misc
monitoring
prometheus
tests
pkgs
applications
audio
rosegarden
display-managers
lightdm-mini-greeter
graphics
photoflare
misc
pueue
networking
browsers
asuka
cluster
terragrunt
mailreaders
radio
video
data
fonts
twitter-color-emoji
development
gnuradio-modules
libraries
iniparser
libdigidocpp
libhandy
libisoburn
liblinear
libofx
oneDNN
volk
python-modules
Rtree
convertdate
cryptography
tools
analysis
tfsec
misc
terraform-ls
servers
minio
monitoring
rtsp-simple-server
tools
admin
clair
filesystems
reiser4progs
graphics
resvg
inputmethods
ibus-engines
ibus-anthy
ibus-table
misc
direnv
networking
minio-client
package-management
emplace
security
age
teler
terrascan
typesetting
scdoc
wayland
wev
wlsunset
wshowkeys
top-level
+49 -1
nixos/doc/manual/release-notes/rl-2105.xml
···
now point to an externally wrapped by default derivations, that allow you to
also add `extraPythonPackages` to the Python interpreter used by GNURadio.
Missing environmental variables needed for operational GUI were also added
-
(<link xlink:href="https://github.com/NixOS/nixpkgs/issues/75478">#7547</link>).
+
(<link xlink:href="https://github.com/NixOS/nixpkgs/issues/75478">#75478</link>).
+
</para>
+
</listitem>
+
<listitem>
+
<para>
+
<link xlink:href="https://www.gnuradio.org/">GNURadio</link> has a
+
<code>pkgs</code> attribute set, and there's a <code>gnuradio.callPackage</code>
+
function that extends <code>pkgs</code> with a <code>mkDerivation</code>, and a
+
<code>mkDerivationWith</code>, like Qt5. Now all <code>gnuradio.pkgs</code> are
+
defined with <code>gnuradio.callPackage</code> and some packages that depend
+
on gnuradio are defined with this as well.
</para>
</listitem>
<listitem>
···
<xref linkend="opt-services.privoxy.settings"/>
(See <link xlink:href="https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md">RFC 0042</link>
for the motivation).
+
</para>
+
</listitem>
+
<listitem>
+
<para>
+
<link xlink:href="https://kodi.tv/">Kodi</link> has been updated to version 19.0 "Matrix". See
+
the <link xlink:href="https://kodi.tv/article/kodi-190-matrix-release">announcement</link> for
+
further details.
</para>
</listitem>
</itemizedlist>
···
have been removed. You should set your own according to the
<link xlink:href="https://kafka.apache.org/documentation/#java">upstream documentation</link>
for your Kafka version.
+
</para>
+
</listitem>
+
<listitem>
+
<para>
+
The <package>kodi</package> package has been modified to allow concise addon management. Consider
+
the following configuration from previous releases of NixOS to install <package>kodi</package>,
+
including the <package>kodiPackages.inputstream-adaptive</package> and <package>kodiPackages.vfs-sftp</package>
+
addons:
+
+
<programlisting>
+
environment.systemPackages = [
+
pkgs.kodi
+
];
+
+
nixpkgs.config.kodi = {
+
enableInputStreamAdaptive = true;
+
enableVFSSFTP = true;
+
};
+
</programlisting>
+
+
All Kodi <literal>config</literal> flags have been removed, and as a result the above configuration
+
should now be written as:
+
+
<programlisting>
+
environment.systemPackages = [
+
(pkgs.kodi.withPackages (p: with p; [
+
inputstream-adaptive
+
vfs-sftp
+
]))
+
];
+
</programlisting>
</para>
</listitem>
</itemizedlist>
+16 -4
nixos/modules/services/misc/mautrix-telegram.nix
···
dataDir = "/var/lib/mautrix-telegram";
registrationFile = "${dataDir}/telegram-registration.yaml";
cfg = config.services.mautrix-telegram;
-
# TODO: switch to configGen.json once RFC42 is implemented
-
settingsFile = pkgs.writeText "mautrix-telegram-settings.json" (builtins.toJSON cfg.settings);
+
settingsFormat = pkgs.formats.json {};
+
settingsFileUnsubstituted = settingsFormat.generate "mautrix-telegram-config-unsubstituted.json" cfg.settings;
+
settingsFile = "${dataDir}/config.json";
in {
options = {
···
enable = mkEnableOption "Mautrix-Telegram, a Matrix-Telegram hybrid puppeting/relaybot bridge";
settings = mkOption rec {
-
# TODO: switch to types.config.json as prescribed by RFC42 once it's implemented
-
type = types.attrs;
apply = recursiveUpdate default;
+
inherit (settingsFormat) type;
default = {
appservice = rec {
database = "sqlite:///${dataDir}/mautrix-telegram.db";
···
after = [ "network-online.target" ] ++ cfg.serviceDependencies;
preStart = ''
+
# Not all secrets can be passed as environment variable (yet)
+
# https://github.com/tulir/mautrix-telegram/issues/584
+
[ -f ${settingsFile} ] && rm -f ${settingsFile}
+
old_umask=$(umask)
+
umask 0277
+
${pkgs.envsubst}/bin/envsubst \
+
-o ${settingsFile} \
+
-i ${settingsFileUnsubstituted}
+
umask $old_umask
+
# generate the appservice's registration file if absent
if [ ! -f '${registrationFile}' ]; then
${pkgs.mautrix-telegram}/bin/mautrix-telegram \
···
--config='${settingsFile}'
'';
};
+
+
restartTriggers = [ settingsFileUnsubstituted ];
};
};
+2 -1
nixos/modules/services/monitoring/prometheus/exporters.nix
···
"dovecot"
"fritzbox"
"json"
+
"jitsi"
"keylight"
"knot"
"lnd"
···
inherit name port;
} // extraOpts);
} ({ config, ... }: mkIf config.openFirewall {
-
firewallFilter = mkOptionDefault "-p tcp -m tcp --dport ${toString config.port}";
+
firewallFilter = mkDefault "-p tcp -m tcp --dport ${toString config.port}";
})];
internal = true;
default = {};
+40
nixos/modules/services/monitoring/prometheus/exporters/jitsi.nix
···
+
{ config, lib, pkgs, options }:
+
+
with lib;
+
+
let
+
cfg = config.services.prometheus.exporters.jitsi;
+
in
+
{
+
port = 9700;
+
extraOpts = {
+
url = mkOption {
+
type = types.str;
+
default = "http://localhost:8080/colibri/stats";
+
description = ''
+
Jitsi Videobridge metrics URL to monitor.
+
This is usually /colibri/stats on port 8080 of the jitsi videobridge host.
+
'';
+
};
+
interval = mkOption {
+
type = types.str;
+
default = "30s";
+
example = "1min";
+
description = ''
+
How often to scrape new data
+
'';
+
};
+
};
+
serviceOpts = {
+
serviceConfig = {
+
ExecStart = ''
+
${pkgs.prometheus-jitsi-exporter}/bin/jitsiexporter \
+
-url ${escapeShellArg cfg.url} \
+
-host ${cfg.listenAddress} \
+
-port ${toString cfg.port} \
+
-interval ${toString cfg.interval} \
+
${concatStringsSep " \\\n " cfg.extraFlags}
+
'';
+
};
+
};
+
}
+23
nixos/tests/prometheus-exporters.nix
···
'';
};
+
jitsi = {
+
exporterConfig = {
+
enable = true;
+
};
+
metricProvider = {
+
systemd.services.prometheus-jitsi-exporter.after = [ "jitsi-videobridge2.service" ];
+
services.jitsi-videobridge = {
+
enable = true;
+
apis = [ "colibri" "rest" ];
+
};
+
};
+
exporterTest = ''
+
wait_for_unit("jitsi-videobridge2.service")
+
wait_for_open_port(8080)
+
wait_for_unit("prometheus-jitsi-exporter.service")
+
wait_for_open_port(9700)
+
wait_until_succeeds(
+
'journalctl -eu prometheus-jitsi-exporter.service -o cat | grep -q "key=participants"'
+
)
+
succeed("curl -sSf 'localhost:9700/metrics' | grep -q 'jitsi_participants 0'")
+
'';
+
};
+
json = {
exporterConfig = {
enable = true;
+2 -2
pkgs/applications/audio/rosegarden/default.nix
···
, liblo, libsamplerate, libsndfile, lirc ? null, lrdf, qtbase }:
stdenv.mkDerivation (rec {
-
version = "20.06";
+
version = "20.12";
pname = "rosegarden";
src = fetchurl {
url = "mirror://sourceforge/rosegarden/${pname}-${version}.tar.bz2";
-
sha256 = "1i9x9rkqwwdrk77xl5ra8i48cjirbc7fbisnj0nnclccwaq0wk6r";
+
sha256 = "sha256-iGaEr8WFipV4I00fhFGI2xMBFPf784IIxNXs2hUTHFs=";
};
patchPhase = ''
+2 -2
pkgs/applications/display-managers/lightdm-mini-greeter/default.nix
···
stdenv.mkDerivation rec {
pname = "lightdm-mini-greeter";
-
version = "0.5.0";
+
version = "0.5.1";
src = fetchFromGitHub {
owner = "prikhi";
repo = "lightdm-mini-greeter";
rev = version;
-
sha256 = "sha256-cVOnd3k+9hFQjROiwPpxZcCxD2NiH1eclJHF88eV6BM=";
+
sha256 = "sha256-Pm7ExfusFIPktX2C4UE07qgOVhcWhVxnaD3QARpmu7Y=";
};
nativeBuildInputs = [ autoreconfHook pkg-config wrapGAppsHook ];
+1 -3
pkgs/applications/graphics/photoflare/default.nix
···
NIX_CFLAGS_COMPILE = "-I${graphicsmagick}/include/GraphicsMagick";
-
enableParallelBuilding = true;
-
meta = with lib; {
description = "A cross-platform image editor with a powerful features and a very friendly graphical user interface";
homepage = "https://photoflare.io";
maintainers = [ maintainers.omgbebebe ];
-
license = licenses.gpl3;
+
license = licenses.gpl3Plus;
platforms = platforms.linux;
};
}
+7 -4
pkgs/applications/misc/pueue/default.nix
···
-
{ lib, rustPlatform, fetchFromGitHub, installShellFiles }:
+
{ stdenv, lib, rustPlatform, fetchFromGitHub, installShellFiles, SystemConfiguration, libiconv }:
rustPlatform.buildRustPackage rec {
pname = "pueue";
-
version = "0.12.0";
+
version = "0.12.1";
src = fetchFromGitHub {
owner = "Nukesor";
repo = pname;
rev = "v${version}";
-
sha256 = "sha256-yOUVDq/wRY35ZQjQVwTLYHKukkKpoggN51wBDdZnhI4=";
+
sha256 = "sha256-wcOF34GzlB6YKISkjDgYgsaN1NmWBMIntfT23A6byx8=";
};
-
cargoSha256 = "sha256-56jJ8IjxWTBlaDd1CVit4RP659Mgw2j2wMWcSDYVihM=";
+
cargoSha256 = "sha256-7SJjtHNSabE/VqdiSwKZ/yNzk6GSMNsQLaSx/MjN5NA=";
nativeBuildInputs = [ installShellFiles ];
+
+
buildInputs = lib.optionals stdenv.isDarwin [ SystemConfiguration libiconv ];
checkFlags = [ "--skip=test_single_huge_payload" "--skip=test_create_unix_socket" ];
···
meta = with lib; {
description = "A daemon for managing long running shell commands";
homepage = "https://github.com/Nukesor/pueue";
+
changelog = "https://github.com/Nukesor/pueue/raw/v${version}/CHANGELOG.md";
license = licenses.mit;
maintainers = [ maintainers.marsam ];
};
+6 -4
pkgs/applications/networking/browsers/asuka/default.nix
···
-
{ lib, stdenv, rustPlatform, fetchurl, pkg-config, ncurses, openssl, Security }:
+
{ lib, stdenv, rustPlatform, fetchFromSourcehut, pkg-config, ncurses, openssl, Security }:
rustPlatform.buildRustPackage rec {
pname = "asuka";
version = "0.8.1";
-
src = fetchurl {
-
url = "https://git.sr.ht/~julienxx/${pname}/archive/${version}.tar.gz";
-
sha256 = "07i80qmdpwfdgwrk1gzs10wln91v23qjrsk0x134xf5mjnakxc06";
+
src = fetchFromSourcehut {
+
owner = "~julienxx";
+
repo = pname;
+
rev = version;
+
sha256 = "1y8v4qc5dng3v9k0bky1xlf3qi9pk2vdsi29lff4ha5310467f0k";
};
cargoSha256 = "0p0x4ch04kydg76bfal5zqzr9hvn5268wf3k2v9h7g8r4y8xqlhw";
+3 -3
pkgs/applications/networking/cluster/terragrunt/default.nix
···
buildGoModule rec {
pname = "terragrunt";
-
version = "0.28.9";
+
version = "0.28.11";
src = fetchFromGitHub {
owner = "gruntwork-io";
repo = pname;
rev = "v${version}";
-
sha256 = "sha256-sqwR+bXx5ab5OsmW44C5MIXjzQFM1QsBvsM0R3pL3H8=";
+
sha256 = "sha256-qlmiQ73MRXcdXXC50pewUMt9YFbzXIbjnZTV5gIcvGs=";
};
-
vendorSha256 = "sha256-9DBCP/4mp/Gr2ie0nk7WGfL+M7snMEztdHZzxdIFbzM=";
+
vendorSha256 = "sha256-SVrDBDGK809O+RaE3gOa9U1agY6hSGI/k3FUCgm+5PA=";
doCheck = false;
+6 -4
pkgs/applications/networking/mailreaders/aerc/default.nix
···
-
{ lib, buildGoModule, fetchurl
+
{ lib, buildGoModule, fetchFromSourcehut
, ncurses, notmuch, scdoc
, python3, w3m, dante
}:
···
pname = "aerc";
version = "0.5.2";
-
src = fetchurl {
-
url = "https://git.sr.ht/~sircmpwn/aerc/archive/${version}.tar.gz";
-
sha256 = "h7kiRA5TuZ8mDSMymWU33stFLIOMd06TQLYzKW+faO4=";
+
src = fetchFromSourcehut {
+
owner = "~sircmpwn";
+
repo = pname;
+
rev = version;
+
sha256 = "1ja639qry8h2d6y7qshf62ypkzs2rzady59p81scqh8nx0g9bils";
};
runVend = true;
+19 -13
pkgs/applications/radio/gnss-sdr/default.nix
···
-
{ lib, stdenv, fetchFromGitHub
+
{ lib
+
, fetchFromGitHub
, armadillo
-
, boost
, cmake
+
, gmp
, glog
, gmock
, openssl
, gflags
-
, gnuradio
+
, gnuradio3_8
+
, libpcap
, orc
, pkg-config
-
, pythonPackages
, uhd
, log4cpp
, blas, lapack
···
, protobuf
}:
-
stdenv.mkDerivation rec {
+
gnuradio3_8.pkgs.mkDerivation rec {
pname = "gnss-sdr";
version = "0.0.13";
···
sha256 = "0a3k47fl5dizzhbqbrbmckl636lznyjby2d2nz6fz21637hvrnby";
};
-
nativeBuildInputs = [ cmake pkg-config ];
+
nativeBuildInputs = [
+
cmake
+
gnuradio3_8.unwrapped.python
+
gnuradio3_8.unwrapped.python.pkgs.Mako
+
gnuradio3_8.unwrapped.python.pkgs.six
+
];
+
buildInputs = [
+
gmp
armadillo
-
boost.dev
+
gnuradio3_8.unwrapped.boost
glog
gmock
-
openssl.dev
+
openssl
gflags
-
gnuradio
orc
-
pythonPackages.Mako
-
pythonPackages.six
-
# UHD support is optional, but gnuradio is built with it, so there's
# nothing to be gained by leaving it out.
-
uhd
+
gnuradio3_8.unwrapped.uhd
log4cpp
blas lapack
matio
pugixml
protobuf
+
gnuradio3_8.pkgs.osmosdr
+
libpcap
];
cmakeFlags = [
+22 -33
pkgs/applications/radio/gnuradio/3.7.nix
···
# Remove gcc and python references
, removeReferencesTo
, pkg-config
+
, volk
, cppunit
, swig
, orc
···
minor = "14";
patch = "0";
}
-
, fetchSubmodules ? true
+
# We use our build of volk and not the one bundled with the release
+
, fetchSubmodules ? false
}:
let
-
sourceSha256 = "1nh4f9dmygprlbqybd3j1byg9fsr6065n140mvc4b0v8qqygmhrc";
+
sourceSha256 = "BiUDibXV/5cEYmAAaIxT4WTxF/ni4MJumF5oJ/vuOyc=";
featuresInfo = {
# Needed always
basic = {
···
};
volk = {
cmakeEnableFlag = "VOLK";
+
runtime = [
+
volk
+
];
};
doxygen = {
native = [ doxygen ];
···
qt = qt4;
gtk = gtk2;
});
+
inherit (shared) hasFeature; # function
+
in
+
+
stdenv.mkDerivation rec {
+
inherit pname;
inherit (shared)
version
src
-
hasFeature # function
nativeBuildInputs
buildInputs
disallowedReferences
postInstall
-
passthru
doCheck
dontWrapPythonPrograms
meta
;
+
+
passthru = shared.passthru // {
+
# Deps that are potentially overriden and are used inside GR plugins - the same version must
+
inherit boost volk;
+
} // lib.optionalAttrs (hasFeature "gr-uhd" features) {
+
inherit uhd;
+
};
cmakeFlags = shared.cmakeFlags
# From some reason, if these are not set, libcodec2 and gsm are
# not detected properly (slightly different then what's in
···
"-DLIBCODEC2_INCLUDE_DIR=${codec2}/include"
"-DLIBGSM_LIBRARIES=${gsm}/lib/libgsm.so"
"-DLIBGSM_INCLUDE_DIR=${gsm}/include/gsm"
+
]
+
++ lib.optionals (hasFeature "volk" features && volk != null) [
+
"-DENABLE_INTERNAL_VOLK=OFF"
]
;
stripDebugList = shared.stripDebugList
···
+ lib.optionalString (hasFeature "gnuradio-companion" features) ''
sed -i 's/.*pygtk_version.*/set(PYGTK_FOUND TRUE)/g' grc/CMakeLists.txt
''
-
# If python-support is disabled, don't install volk's (git submodule)
-
# volk_modtool - it references python.
-
#
-
# NOTE: The same is done for 3.8, but we don't put this string in
-
# ./shared.nix since on the next release of 3.8 it won't be needed there,
-
# but it will be needed for 3.7, probably for ever.
-
+ lib.optionalString (!hasFeature "python-support" features) ''
-
sed -i -e "/python\/volk_modtool/d" volk/CMakeLists.txt
-
''
;
patches = [
# Don't install python referencing files if python support is disabled.
···
sha256 = "2Pitgu8accs16B5X5+/q51hr+IY9DMsA15f56gAtBs8=";
})
];
-
in
-
-
stdenv.mkDerivation rec {
-
inherit
-
pname
-
version
-
src
-
nativeBuildInputs
-
buildInputs
-
cmakeFlags
-
preConfigure
-
# disallowedReferences
-
stripDebugList
-
patches
-
postInstall
-
passthru
-
doCheck
-
dontWrapPythonPrograms
-
meta
-
;
}
+284
pkgs/applications/radio/gnuradio/3.8.nix
···
+
{ lib, stdenv
+
, fetchFromGitHub
+
, fetchpatch
+
, cmake
+
# Remove gcc and python references
+
, removeReferencesTo
+
, pkg-config
+
, volk
+
, cppunit
+
, swig
+
, orc
+
, boost
+
, log4cpp
+
, mpir
+
, doxygen
+
, python
+
, codec2
+
, gsm
+
, fftwFloat
+
, alsaLib
+
, libjack2
+
, CoreAudio
+
, uhd
+
, SDL
+
, gsl
+
, cppzmq
+
, zeromq
+
# Needed only if qt-gui is disabled, from some reason
+
, icu
+
# GUI related
+
, gtk3
+
, pango
+
, gobject-introspection
+
, cairo
+
, qt5
+
, libsForQt5
+
# Features available to override, the list of them is in featuresInfo. They
+
# are all turned on by default.
+
, features ? {}
+
# If one wishes to use a different src or name for a very custom build
+
, overrideSrc ? {}
+
, pname ? "gnuradio"
+
, versionAttr ? {
+
major = "3.8";
+
minor = "2";
+
patch = "0";
+
}
+
# We use our build of volk and not the one bundled with the release
+
, fetchSubmodules ? false
+
}:
+
+
let
+
sourceSha256 = "SFDjtyQRp0fXijZukpLYtISpx8imxedlYN9mRibv1eA=";
+
featuresInfo = {
+
# Needed always
+
basic = {
+
native = [
+
cmake
+
pkg-config
+
orc
+
];
+
runtime = [
+
boost
+
log4cpp
+
mpir
+
]
+
# when gr-qtgui is disabled, icu needs to be included, otherwise
+
# building with boost 1.7x fails
+
++ lib.optionals (!(hasFeature "gr-qtgui" features)) [ icu ];
+
pythonNative = with python.pkgs; [
+
Mako
+
six
+
];
+
};
+
volk = {
+
cmakeEnableFlag = "VOLK";
+
runtime = [
+
volk
+
];
+
};
+
doxygen = {
+
native = [ doxygen ];
+
cmakeEnableFlag = "DOXYGEN";
+
};
+
sphinx = {
+
pythonNative = with python.pkgs; [ sphinx ];
+
cmakeEnableFlag = "SPHINX";
+
};
+
python-support = {
+
pythonRuntime = [ python.pkgs.six ];
+
native = [
+
swig
+
python
+
];
+
cmakeEnableFlag = "PYTHON";
+
};
+
testing-support = {
+
native = [ cppunit ];
+
cmakeEnableFlag = "TESTING";
+
};
+
gnuradio-runtime = {
+
cmakeEnableFlag = "GNURADIO_RUNTIME";
+
};
+
gr-ctrlport = {
+
# Thrift support is not really working well, and even the patch they
+
# recommend applying on 0.9.2 won't apply. See:
+
# https://github.com/gnuradio/gnuradio/blob/v3.8.2.0/gnuradio-runtime/lib/controlport/thrift/README
+
cmakeEnableFlag = "GR_CTRLPORT";
+
native = [
+
swig
+
];
+
};
+
gnuradio-companion = {
+
pythonRuntime = with python.pkgs; [
+
pyyaml
+
Mako
+
numpy
+
pygobject3
+
];
+
runtime = [
+
gtk3
+
pango
+
gobject-introspection
+
cairo
+
];
+
cmakeEnableFlag = "GRC";
+
};
+
gr-blocks = {
+
cmakeEnableFlag = "GR_BLOCKS";
+
};
+
gr-fec = {
+
cmakeEnableFlag = "GR_FEC";
+
};
+
gr-fft = {
+
runtime = [ fftwFloat ];
+
cmakeEnableFlag = "GR_FFT";
+
};
+
gr-filter = {
+
runtime = [ fftwFloat ];
+
cmakeEnableFlag = "GR_FILTER";
+
};
+
gr-analog = {
+
cmakeEnableFlag = "GR_ANALOG";
+
};
+
gr-digital = {
+
cmakeEnableFlag = "GR_DIGITAL";
+
};
+
gr-dtv = {
+
cmakeEnableFlag = "GR_DTV";
+
};
+
gr-audio = {
+
runtime = []
+
++ lib.optionals stdenv.isLinux [ alsaLib libjack2 ]
+
++ lib.optionals stdenv.isDarwin [ CoreAudio ]
+
;
+
cmakeEnableFlag = "GR_AUDIO";
+
};
+
gr-channels = {
+
cmakeEnableFlag = "GR_CHANNELS";
+
};
+
gr-qtgui = {
+
runtime = [ qt5.qtbase libsForQt5.qwt ];
+
pythonRuntime = [ python.pkgs.pyqt5 ];
+
cmakeEnableFlag = "GR_QTGUI";
+
};
+
gr-trellis = {
+
cmakeEnableFlag = "GR_TRELLIS";
+
};
+
gr-uhd = {
+
runtime = [ uhd ];
+
cmakeEnableFlag = "GR_UHD";
+
};
+
gr-utils = {
+
cmakeEnableFlag = "GR_UTILS";
+
};
+
gr-modtool = {
+
pythonRuntime = with python.pkgs; [
+
click
+
click-plugins
+
];
+
cmakeEnableFlag = "GR_MODTOOL";
+
};
+
gr-video-sdl = {
+
runtime = [ SDL ];
+
cmakeEnableFlag = "GR_VIDEO_SDL";
+
};
+
gr-vocoder = {
+
runtime = [ codec2 gsm ];
+
cmakeEnableFlag = "GR_VOCODER";
+
};
+
gr-wavelet = {
+
cmakeEnableFlag = "GR_WAVELET";
+
runtime = [ gsl ];
+
};
+
gr-zeromq = {
+
runtime = [ cppzmq zeromq ];
+
cmakeEnableFlag = "GR_ZEROMQ";
+
};
+
};
+
shared = (import ./shared.nix {
+
inherit
+
stdenv
+
lib
+
python
+
removeReferencesTo
+
featuresInfo
+
features
+
versionAttr
+
sourceSha256
+
overrideSrc
+
fetchFromGitHub
+
fetchSubmodules
+
;
+
qt = qt5;
+
gtk = gtk3;
+
});
+
inherit (shared) hasFeature; # function
+
in
+
+
stdenv.mkDerivation rec {
+
inherit pname;
+
inherit (shared)
+
version
+
src
+
nativeBuildInputs
+
buildInputs
+
disallowedReferences
+
stripDebugList
+
doCheck
+
dontWrapPythonPrograms
+
dontWrapQtApps
+
meta
+
;
+
passthru = shared.passthru // {
+
# Deps that are potentially overriden and are used inside GR plugins - the same version must
+
inherit boost volk;
+
} // lib.optionalAttrs (hasFeature "gr-uhd" features) {
+
inherit uhd;
+
} // lib.optionalAttrs (hasFeature "gr-qtgui" features) {
+
inherit (libsForQt5) qwt;
+
};
+
cmakeFlags = shared.cmakeFlags
+
# From some reason, if these are not set, libcodec2 and gsm are not
+
# detected properly. NOTE: qradiolink needs libcodec2 to be detected in
+
# order to build, see https://github.com/qradiolink/qradiolink/issues/67
+
++ lib.optionals (hasFeature "gr-vocoder" features) [
+
"-DLIBCODEC2_LIBRARIES=${codec2}/lib/libcodec2.so"
+
"-DLIBCODEC2_INCLUDE_DIRS=${codec2}/include"
+
"-DLIBCODEC2_HAS_FREEDV_API=ON"
+
"-DLIBGSM_LIBRARIES=${gsm}/lib/libgsm.so"
+
"-DLIBGSM_INCLUDE_DIRS=${gsm}/include/gsm"
+
]
+
++ lib.optionals (hasFeature "volk" features && volk != null) [
+
"-DENABLE_INTERNAL_VOLK=OFF"
+
]
+
;
+
+
postInstall = shared.postInstall
+
# This is the only python reference worth removing, if needed (3.7 doesn't
+
# set that reference).
+
+ lib.optionalString (!hasFeature "python-support" features) ''
+
${removeReferencesTo}/bin/remove-references-to -t ${python} $out/lib/cmake/gnuradio/GnuradioConfig.cmake
+
''
+
;
+
patches = [
+
# Don't install python referencing files if python support is disabled.
+
# See: https://github.com/gnuradio/gnuradio/pull/3839
+
(fetchpatch {
+
url = "https://github.com/gnuradio/gnuradio/commit/4a4fd570b398b0b50fe875fcf0eb9c9db2ea5c6e.diff";
+
sha256 = "xz2E0ji6zfdOAhjfPecAcaVOIls1XP8JngLkBbBBW5Q=";
+
})
+
(fetchpatch {
+
url = "https://github.com/gnuradio/gnuradio/commit/dbc8ad7e7361fddc7b1dbc267c07a776a3f9664b.diff";
+
sha256 = "tQcCpcUbJv3yqAX8rSHN/pAuBq4ueEvoVo7sNzZGvf4=";
+
})
+
# Needed to use boost 1.7x, see:
+
# https://github.com/gnuradio/gnuradio/issues/3720
+
# https://github.com/gnuradio/gnuradio/pull/3967
+
(fetchpatch {
+
url = "https://github.com/gnuradio/gnuradio/commit/cbcb968358fad56f3646619b258f18b0e6693a07.diff";
+
sha256 = "1ajf4797f869lqv436xw61s29qdbn7f01i0970kfxv3yahd34p9v";
+
})
+
];
+
}
-53
pkgs/applications/radio/gnuradio/ais.nix
···
-
{ lib
-
, stdenv
-
, fetchFromGitHub
-
, cmake
-
, pkg-config
-
, boost
-
, gnuradio
-
, makeWrapper
-
, cppunit
-
, gr-osmosdr
-
, log4cpp
-
, pythonSupport ? true
-
, python
-
, swig
-
, fetchpatch
-
}:
-
-
stdenv.mkDerivation {
-
pname = "gr-ais";
-
version = "2015-12-20";
-
-
src = fetchFromGitHub {
-
owner = "bistromath";
-
repo = "gr-ais";
-
rev = "cdc1f52745853f9c739c718251830eb69704b26e";
-
sha256 = "1vl3kk8xr2mh5lf31zdld7yzmwywqffffah8iblxdzblgsdwxfl6";
-
};
-
-
patches = [
-
(fetchpatch {
-
url = "https://github.com/bistromath/gr-ais/commit/8502d0252a2a1a9b8d1a71795eaeb5d820684054.patch";
-
sha256 = "1cwalphldvf6dbhzwz1gi53z0cb4921qsvlz4138q7m6dxccvssg";
-
})
-
];
-
-
nativeBuildInputs = [ cmake makeWrapper pkg-config ];
-
buildInputs = [ boost gnuradio cppunit gr-osmosdr log4cpp ]
-
++ lib.optionals pythonSupport [ python swig ];
-
-
postInstall = ''
-
for prog in "$out"/bin/*; do
-
wrapProgram "$prog" --set PYTHONPATH $PYTHONPATH:$(toPythonPath "$out")
-
done
-
'';
-
-
meta = with lib; {
-
description = "Gnuradio block for ais";
-
homepage = "https://github.com/bistromath/gr-ais";
-
license = licenses.gpl3Plus;
-
platforms = platforms.linux ++ platforms.darwin;
-
maintainers = with maintainers; [ mog ];
-
};
-
}
+64 -89
pkgs/applications/radio/gnuradio/default.nix
···
# Remove gcc and python references
, removeReferencesTo
, pkg-config
+
, volk
, cppunit
-
, swig
, orc
, boost
, log4cpp
···
, uhd
, SDL
, gsl
+
, libsodium
+
, libsndfile
+
, libunwind
, cppzmq
, zeromq
+
# Needed only if qt-gui is disabled, from some reason
+
, icu
# GUI related
, gtk3
, pango
···
, overrideSrc ? {}
, pname ? "gnuradio"
, versionAttr ? {
-
major = "3.8";
-
minor = "2";
+
major = "3.9";
+
minor = "0";
patch = "0";
}
-
# Should be false on the release after 3.8.2.0
-
, fetchSubmodules ? true
+
, fetchSubmodules ? false
}:
let
-
sourceSha256 = "1mnfwdy7w3160vi6110x2qkyq8l78qi8771zwak9n72bl7lhhpnf";
+
sourceSha256 = "ZjQzioAuWrd8jsYOnLNH1mK4n9EbrjgvPX3mTzVFdLk=";
featuresInfo = {
# Needed always
basic = {
···
orc
];
runtime = [
+
volk
boost
log4cpp
mpir
-
];
+
]
+
# when gr-qtgui is disabled, icu needs to be included, otherwise
+
# building with boost 1.7x fails
+
++ lib.optionals (!(hasFeature "gr-qtgui" features)) [ icu ];
pythonNative = with python.pkgs; [
Mako
six
];
};
-
# NOTE: Should be removed on the release after 3.8.2.0, see:
-
# https://github.com/gnuradio/gnuradio/commit/80c04479d
-
volk = {
-
cmakeEnableFlag = "VOLK";
-
};
doxygen = {
native = [ doxygen ];
cmakeEnableFlag = "DOXYGEN";
};
-
sphinx = {
-
pythonNative = with python.pkgs; [ sphinx ];
-
cmakeEnableFlag = "SPHINX";
-
};
python-support = {
pythonRuntime = [ python.pkgs.six ];
native = [
-
swig
python
];
cmakeEnableFlag = "PYTHON";
···
testing-support = {
native = [ cppunit ];
cmakeEnableFlag = "TESTING";
+
};
+
post-install = {
+
cmakeEnableFlag = "POSTINSTALL";
};
gnuradio-runtime = {
cmakeEnableFlag = "GNURADIO_RUNTIME";
+
pythonRuntime = [
+
python.pkgs.pybind11
+
];
};
gr-ctrlport = {
# Thrift support is not really working well, and even the patch they
# recommend applying on 0.9.2 won't apply. See:
-
# https://github.com/gnuradio/gnuradio/blob/v3.8.2.0/gnuradio-runtime/lib/controlport/thrift/README
+
# https://github.com/gnuradio/gnuradio/blob/v3.9.0.0/gnuradio-runtime/lib/controlport/thrift/README
+
runtime = [
+
libunwind
+
];
cmakeEnableFlag = "GR_CTRLPORT";
-
native = [
-
swig
-
];
};
gnuradio-companion = {
pythonRuntime = with python.pkgs; [
···
numpy
pygobject3
];
+
native = [
+
python.pkgs.pytest
+
];
runtime = [
gtk3
pango
gobject-introspection
cairo
+
libsndfile
];
cmakeEnableFlag = "GRC";
};
···
cmakeEnableFlag = "GR_TRELLIS";
};
gr-uhd = {
-
runtime = [ uhd ];
+
runtime = [
+
uhd
+
];
cmakeEnableFlag = "GR_UHD";
};
gr-utils = {
···
];
cmakeEnableFlag = "GR_MODTOOL";
};
+
gr-blocktool = {
+
cmakeEnableFlag = "GR_BLOCKTOOL";
+
};
gr-video-sdl = {
runtime = [ SDL ];
cmakeEnableFlag = "GR_VIDEO_SDL";
};
-
gr-vocoder = {
-
runtime = [ codec2 gsm ];
-
cmakeEnableFlag = "GR_VOCODER";
-
};
+
# codec2 and gsm support is broken with gr3.9: https://github.com/gnuradio/gnuradio/issues/4278
+
# gr-vocoder = {
+
# runtime = [ codec2 gsm ];
+
# cmakeEnableFlag = "GR_VOCODER";
+
# };
gr-wavelet = {
cmakeEnableFlag = "GR_WAVELET";
-
runtime = [ gsl ];
+
runtime = [ gsl libsodium ];
};
gr-zeromq = {
runtime = [ cppzmq zeromq ];
cmakeEnableFlag = "GR_ZEROMQ";
};
+
gr-network = {
+
cmakeEnableFlag = "GR_NETWORK";
+
};
};
shared = (import ./shared.nix {
inherit
···
qt = qt5;
gtk = gtk3;
});
+
inherit (shared) hasFeature; # function
+
in
+
+
stdenv.mkDerivation rec {
+
inherit pname;
inherit (shared)
version
src
-
hasFeature # function
nativeBuildInputs
buildInputs
+
cmakeFlags
disallowedReferences
stripDebugList
-
passthru
doCheck
dontWrapPythonPrograms
dontWrapQtApps
meta
;
-
cmakeFlags = shared.cmakeFlags
-
# From some reason, if these are not set, libcodec2 and gsm are not
-
# detected properly. NOTE: qradiolink needs libcodec2 to be detected in
-
# order to build, see https://github.com/qradiolink/qradiolink/issues/67
-
++ lib.optionals (hasFeature "gr-vocoder" features) [
-
"-DLIBCODEC2_LIBRARIES=${codec2}/lib/libcodec2.so"
-
"-DLIBCODEC2_INCLUDE_DIRS=${codec2}/include"
-
"-DLIBCODEC2_HAS_FREEDV_API=ON"
-
"-DLIBGSM_LIBRARIES=${gsm}/lib/libgsm.so"
-
"-DLIBGSM_INCLUDE_DIRS=${gsm}/include/gsm"
-
]
-
;
+
passthru = shared.passthru // {
+
# Deps that are potentially overriden and are used inside GR plugins - the same version must
+
inherit boost volk;
+
} // lib.optionalAttrs (hasFeature "gr-uhd" features) {
+
inherit uhd;
+
} // lib.optionalAttrs (hasFeature "gr-qtgui" features) {
+
inherit (libsForQt5) qwt;
+
};
postInstall = shared.postInstall
-
# This is the only python reference worth removing, if needed (3.7 doesn't
-
# set that reference).
+
# This is the only python reference worth removing, if needed.
+
# Even if python support is enabled, and we don't care about this
+
# reference, pybind's path is not properly set. See:
+
# https://github.com/gnuradio/gnuradio/issues/4380
+ lib.optionalString (!hasFeature "python-support" features) ''
${removeReferencesTo}/bin/remove-references-to -t ${python} $out/lib/cmake/gnuradio/GnuradioConfig.cmake
-
''
-
;
-
preConfigure = ""
-
# If python-support is disabled, don't install volk's (git submodule)
-
# volk_modtool - it references python.
-
#
-
# NOTE: on the next release, volk will always be required to be installed
-
# externally (submodule removed upstream). Hence this hook will fail and
-
# we'll need to package volk while able to tell it to install or not
-
# install python referencing files. When we'll be there, this will help:
-
# https://github.com/gnuradio/volk/pull/404
-
+ lib.optionalString (!hasFeature "python-support" features) ''
-
sed -i -e "/python\/volk_modtool/d" volk/CMakeLists.txt
+
${removeReferencesTo}/bin/remove-references-to -t ${python} $(readlink -f $out/lib/libgnuradio-runtime.so)
+
${removeReferencesTo}/bin/remove-references-to -t ${python.pkgs.pybind11} $out/lib/cmake/gnuradio/gnuradio-runtimeTargets.cmake
''
-
;
-
patches = [
-
# Don't install python referencing files if python support is disabled.
-
# See: https://github.com/gnuradio/gnuradio/pull/3839
-
(fetchpatch {
-
url = "https://github.com/gnuradio/gnuradio/commit/4a4fd570b398b0b50fe875fcf0eb9c9db2ea5c6e.diff";
-
sha256 = "xz2E0ji6zfdOAhjfPecAcaVOIls1XP8JngLkBbBBW5Q=";
-
})
-
(fetchpatch {
-
url = "https://github.com/gnuradio/gnuradio/commit/dbc8ad7e7361fddc7b1dbc267c07a776a3f9664b.diff";
-
sha256 = "tQcCpcUbJv3yqAX8rSHN/pAuBq4ueEvoVo7sNzZGvf4=";
-
})
-
];
-
in
-
-
stdenv.mkDerivation rec {
-
inherit
-
pname
-
version
-
src
-
nativeBuildInputs
-
buildInputs
-
cmakeFlags
-
preConfigure
-
# disallowedReferences
-
stripDebugList
-
patches
-
postInstall
-
passthru
-
doCheck
-
dontWrapPythonPrograms
-
dontWrapQtApps
-
meta
;
}
-37
pkgs/applications/radio/gnuradio/gsm.nix
···
-
{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, boost, gnuradio, log4cpp
-
, makeWrapper, cppunit, libosmocore, gr-osmosdr
-
, pythonSupport ? true, python, swig
-
}:
-
-
assert pythonSupport -> python != null && swig != null;
-
-
stdenv.mkDerivation {
-
pname = "gr-gsm";
-
version = "2016-08-25";
-
-
src = fetchFromGitHub {
-
owner = "ptrkrysik";
-
repo = "gr-gsm";
-
rev = "3ca05e6914ef29eb536da5dbec323701fbc2050d";
-
sha256 = "13nnq927kpf91iqccr8db9ripy5czjl5jiyivizn6bia0bam2pvx";
-
};
-
-
nativeBuildInputs = [ cmake pkg-config ];
-
buildInputs = [
-
boost gnuradio makeWrapper cppunit libosmocore gr-osmosdr log4cpp
-
] ++ lib.optionals pythonSupport [ python swig ];
-
-
postInstall = ''
-
for prog in "$out"/bin/*; do
-
wrapProgram "$prog" --set PYTHONPATH $PYTHONPATH:${gr-osmosdr}/lib/${python.libPrefix}/site-packages:$(toPythonPath "$out")
-
done
-
'';
-
-
meta = with lib; {
-
description = "Gnuradio block for gsm";
-
homepage = "https://github.com/ptrkrysik/gr-gsm";
-
license = licenses.gpl3Plus;
-
platforms = platforms.linux;
-
maintainers = with maintainers; [ mog ];
-
};
-
}
-38
pkgs/applications/radio/gnuradio/limesdr.nix
···
-
{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, boost, gnuradio
-
, pythonSupport ? true, python, swig, limesuite, log4cpp
-
} :
-
-
assert pythonSupport -> python != null && swig != null;
-
-
let
-
version = "2.0.0";
-
-
in stdenv.mkDerivation {
-
pname = "gr-limesdr";
-
inherit version;
-
-
src = fetchFromGitHub {
-
owner = "myriadrf";
-
repo = "gr-limesdr";
-
rev = "v${version}";
-
sha256 = "0ldqvfwl0gil89l9s31fjf9d7ki0dk572i8vna336igfaz348ypq";
-
};
-
-
nativeBuildInputs = [
-
cmake
-
pkg-config
-
] ++ lib.optionals pythonSupport [ swig ];
-
-
buildInputs = [
-
boost gnuradio limesuite log4cpp
-
] ++ lib.optionals pythonSupport [ python ];
-
-
-
meta = with lib; {
-
description = "Gnuradio source and sink blocks for LimeSDR";
-
homepage = "https://wiki.myriadrf.org/Gr-limesdr_Plugin_for_GNURadio";
-
license = licenses.mit;
-
platforms = platforms.linux;
-
maintainers = [ maintainers.markuskowa ];
-
};
-
}
-37
pkgs/applications/radio/gnuradio/nacl.nix
···
-
{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, boost, gnuradio, uhd
-
, makeWrapper, libsodium, cppunit, log4cpp
-
, pythonSupport ? true, python, swig
-
}:
-
-
assert pythonSupport -> python != null && swig != null;
-
-
stdenv.mkDerivation {
-
pname = "gr-nacl";
-
version = "2017-04-10";
-
-
src = fetchFromGitHub {
-
owner = "stwunsch";
-
repo = "gr-nacl";
-
rev = "15276bb0fcabf5fe4de4e58df3d579b5be0e9765";
-
sha256 = "018np0qlk61l7mlv3xxx5cj1rax8f1vqrsrch3higsl25yydbv7v";
-
};
-
-
nativeBuildInputs = [ cmake pkg-config ];
-
buildInputs = [
-
boost gnuradio uhd makeWrapper libsodium cppunit log4cpp
-
] ++ lib.optionals pythonSupport [ python swig ];
-
-
postInstall = ''
-
for prog in "$out"/bin/*; do
-
wrapProgram "$prog" --set PYTHONPATH $PYTHONPATH:$(toPythonPath "$out")
-
done
-
'';
-
-
meta = with lib; {
-
description = "Gnuradio block for encryption";
-
homepage = "https://github.com/stwunsch/gr-nacl";
-
license = licenses.gpl3Plus;
-
platforms = platforms.linux ++ platforms.darwin;
-
maintainers = with maintainers; [ mog ];
-
};
-
}
-45
pkgs/applications/radio/gnuradio/osmosdr.nix
···
-
{ lib, stdenv, fetchgit, cmake, pkg-config, makeWrapper
-
, boost
-
, pythonSupport ? true, python, swig
-
, airspy
-
, gnuradio
-
, hackrf
-
, libbladeRF
-
, rtl-sdr
-
, soapysdr-with-plugins
-
, uhd
-
, log4cpp
-
}:
-
-
assert pythonSupport -> python != null && swig != null;
-
-
stdenv.mkDerivation rec {
-
pname = "gr-osmosdr";
-
version = "0.1.5";
-
-
src = fetchgit {
-
url = "git://git.osmocom.org/gr-osmosdr";
-
rev = "v${version}";
-
sha256 = "0bf9bnc1c3c4yqqqgmg3nhygj6rcfmyk6pybi27f7461d2cw1drv";
-
};
-
-
nativeBuildInputs = [ cmake makeWrapper pkg-config ];
-
buildInputs = [
-
boost log4cpp airspy gnuradio hackrf libbladeRF rtl-sdr uhd
-
] ++ lib.optionals stdenv.isLinux [ soapysdr-with-plugins ]
-
++ lib.optionals pythonSupport [ python swig python.pkgs.cheetah ];
-
-
postInstall = ''
-
for prog in "$out"/bin/*; do
-
wrapProgram "$prog" --set PYTHONPATH $PYTHONPATH:$(toPythonPath "$out")
-
done
-
'';
-
-
meta = with lib; {
-
description = "Gnuradio block for OsmoSDR and rtl-sdr";
-
homepage = "https://sdr.osmocom.org/trac/wiki/GrOsmoSDR";
-
license = licenses.gpl3Plus;
-
platforms = platforms.linux ++ platforms.darwin;
-
maintainers = with maintainers; [ bjornfor ];
-
};
-
}
-36
pkgs/applications/radio/gnuradio/rds.nix
···
-
{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, boost, gnuradio, log4cpp
-
, makeWrapper, pythonSupport ? true, python, swig
-
}:
-
-
assert pythonSupport -> python != null && swig != null;
-
-
stdenv.mkDerivation rec {
-
pname = "gr-rds";
-
version = "1.1.0";
-
-
src = fetchFromGitHub {
-
owner = "bastibl";
-
repo = "gr-rds";
-
rev = "v${version}";
-
sha256 = "0jkzchvw0ivcxsjhi1h0mf7k13araxf5m4wi5v9xdgqxvipjzqfy";
-
};
-
-
nativeBuildInputs = [ cmake pkg-config ];
-
buildInputs = [
-
boost gnuradio makeWrapper log4cpp
-
] ++ lib.optionals pythonSupport [ python swig ];
-
-
postInstall = ''
-
for prog in "$out"/bin/*; do
-
wrapProgram "$prog" --set PYTHONPATH $PYTHONPATH:$(toPythonPath "$out")
-
done
-
'';
-
-
meta = with lib; {
-
description = "Gnuradio block for radio data system";
-
homepage = "https://github.com/bastibl/gr-rds";
-
license = licenses.gpl2Plus;
-
platforms = platforms.linux ++ platforms.darwin;
-
maintainers = with maintainers; [ mog ];
-
};
-
}
+4 -5
pkgs/applications/radio/gnuradio/shared.nix
···
;
postInstall = ""
# Gcc references
-
+ lib.optionalString (hasFeature "volk" features) ''
-
${removeReferencesTo}/bin/remove-references-to -t ${stdenv.cc} $(readlink -f $out/lib/libvolk.so)
-
''
+ lib.optionalString (hasFeature "gnuradio-runtime" features) ''
${removeReferencesTo}/bin/remove-references-to -t ${stdenv.cc} $(readlink -f $out/lib/libgnuradio-runtime.so)
''
···
features
featuresInfo
python
-
qt
-
gtk
;
+
} // lib.optionalAttrs (hasFeature "gr-qtgui" features) {
+
inherit qt;
+
} // lib.optionalAttrs (hasFeature "gnuradio-companion" features) {
+
inherit gtk;
};
# Wrapping is done with an external wrapper
dontWrapPythonPrograms = true;
+86 -39
pkgs/applications/radio/gnuradio/wrapper.nix
···
{ lib
, stdenv
+
# The unwrapped gnuradio derivation
, unwrapped
+
# If it's a minimal build, we don't want to wrap it with lndir and
+
# wrapProgram..
+
, wrap ? true
+
# For the wrapper
, makeWrapper
# For lndir
, xorg
+
# To define a the gnuradio.pkgs scope
+
, newScope
# For Emulating wrapGAppsHook
, gsettings-desktop-schemas
, glib
···
[]
)
) unwrapped.featuresInfo)
-
++ lib.optionals (unwrapped.hasFeature "python-support" unwrapped.features) [
-
# Add unwrapped itself as a python module
-
(unwrapped.python.pkgs.toPythonModule unwrapped)
-
]
+
++ lib.optionals
+
(unwrapped.hasFeature "python-support" unwrapped.features)
+
(
+
# Add unwrapped itself as a python module
+
[ (unwrapped.python.pkgs.toPythonModule unwrapped) ]
+
# Add all extraPackages as python modules
+
++ (builtins.map unwrapped.python.pkgs.toPythonModule extraPackages)
+
)
;
-
python3Env = unwrapped.python.withPackages(ps: pythonPkgs);
+
pythonEnv = unwrapped.python.withPackages(ps: pythonPkgs);
name = (lib.appendToName "wrapped" unwrapped).name;
makeWrapperArgs = builtins.concatStringsSep " " ([
···
(if unwrapped.versionAttr.major == "3.8" then
[
"--prefix" "QT_PLUGIN_PATH" ":"
-
"${lib.getBin unwrapped.qt.qtbase}/${unwrapped.qt.qtbase.qtPluginPrefix}"
+
"${
+
lib.makeSearchPath
+
unwrapped.qt.qtbase.qtPluginPrefix
+
(builtins.map lib.getBin [
+
unwrapped.qt.qtbase
+
unwrapped.qt.qtwayland
+
])
+
}"
"--prefix" "QML2_IMPORT_PATH" ":"
-
"${lib.getBin unwrapped.qt.qtbase}/${unwrapped.qt.qtbase.qtQmlPrefix}"
+
"${
+
lib.makeSearchPath
+
unwrapped.qt.qtbase.qtQmlPrefix
+
(builtins.map lib.getBin [
+
unwrapped.qt.qtbase
+
unwrapped.qt.qtwayland
+
])
+
}"
]
else
-
# TODO: Add here qt4 related environment for 3.7?
+
# Add here qt4 related environment for 3.7?
[
]
)
++ extraMakeWrapperArgs
);
-
in
-
stdenv.mkDerivation {
-
inherit name;
-
buildInputs = [
-
makeWrapper
-
xorg.lndir
-
];
-
-
passthru = {
-
inherit python3Env pythonPkgs unwrapped;
+
packages = import ../../../top-level/gnuradio-packages.nix {
+
inherit lib stdenv newScope;
+
gnuradio = unwrapped;
+
};
+
passthru = unwrapped.passthru // {
+
inherit
+
pythonEnv
+
pythonPkgs
+
unwrapped
+
;
+
pkgs = packages;
};
-
-
buildCommand = ''
-
mkdir $out
-
cd $out
-
lndir -silent ${unwrapped}
-
for i in $out/bin/*; do
-
if [[ ! -x "$i" ]]; then
-
continue
-
fi
-
cp -L "$i" "$i".tmp
-
mv -f "$i".tmp "$i"
-
if head -1 "$i" | grep -q ${unwrapped.python}; then
-
substituteInPlace "$i" \
-
--replace ${unwrapped.python} ${python3Env}
-
fi
-
wrapProgram "$i" ${makeWrapperArgs}
-
done
-
'';
-
-
inherit (unwrapped) meta;
-
}
+
self = if wrap then
+
stdenv.mkDerivation {
+
inherit name passthru;
+
buildInputs = [
+
makeWrapper
+
xorg.lndir
+
];
+
buildCommand = ''
+
mkdir $out
+
cd $out
+
lndir -silent ${unwrapped}
+
${lib.optionalString
+
(extraPackages != [])
+
(builtins.concatStringsSep "\n"
+
(builtins.map (pkg: ''
+
if [[ -d ${lib.getBin pkg}/bin/ ]]; then
+
lndir -silent ${pkg}/bin ./bin
+
fi
+
'') extraPackages)
+
)
+
}
+
for i in $out/bin/*; do
+
if [[ ! -x "$i" ]]; then
+
continue
+
fi
+
cp -L "$i" "$i".tmp
+
mv -f "$i".tmp "$i"
+
if head -1 "$i" | grep -q ${unwrapped.python}; then
+
substituteInPlace "$i" \
+
--replace ${unwrapped.python} ${pythonEnv}
+
fi
+
wrapProgram "$i" ${makeWrapperArgs}
+
done
+
'';
+
inherit (unwrapped) meta;
+
}
+
else
+
unwrapped.overrideAttrs(_: {
+
inherit passthru;
+
})
+
;
+
in self
+30 -6
pkgs/applications/radio/gqrx/default.nix
···
-
{ lib, fetchFromGitHub, cmake, qtbase, qtsvg, gnuradio, boost, gr-osmosdr
-
, mkDerivation
+
{ lib
+
, fetchFromGitHub
+
, cmake
+
, pkg-config
+
, qt5
+
, gnuradio3_8Minimal
+
, log4cpp
+
, mpir
+
, fftwFloat
+
, alsaLib
+
, libjack2
# drivers (optional):
-
, rtl-sdr, hackrf
+
, rtl-sdr
+
, hackrf
, pulseaudioSupport ? true, libpulseaudio
}:
assert pulseaudioSupport -> libpulseaudio != null;
-
mkDerivation rec {
+
gnuradio3_8Minimal.pkgs.mkDerivation rec {
pname = "gqrx";
version = "2.14.4";
···
sha256 = "sha256-mMaxu0jq2GaNLWjLsJQXx+zCxtyiCAZQJJZ8GJtnllQ=";
};
-
nativeBuildInputs = [ cmake ];
+
nativeBuildInputs = [
+
cmake
+
pkg-config
+
qt5.wrapQtAppsHook
+
];
buildInputs = [
-
qtbase qtsvg gnuradio boost gr-osmosdr rtl-sdr hackrf
+
log4cpp
+
mpir
+
fftwFloat
+
alsaLib
+
libjack2
+
gnuradio3_8Minimal.unwrapped.boost
+
qt5.qtbase
+
qt5.qtsvg
+
gnuradio3_8Minimal.pkgs.osmosdr
+
rtl-sdr
+
hackrf
] ++ lib.optionals pulseaudioSupport [ libpulseaudio ];
postInstall = ''
+9 -10
pkgs/applications/radio/inspectrum/default.nix
···
{ lib
-
, mkDerivation
+
, gnuradio3_8Minimal
, fetchFromGitHub
, pkg-config
, cmake
-
, boost
, fftwFloat
-
, gnuradio
+
, qt5
, liquid-dsp
-
, qtbase
-
, wrapQtAppsHook
}:
-
mkDerivation rec {
+
gnuradio3_8Minimal.pkgs.mkDerivation rec {
pname = "inspectrum";
version = "0.2.3";
···
sha256 = "1x6nyn429pk0f7lqzskrgsbq09mq5787xd4piic95add6n1cc355";
};
-
nativeBuildInputs = [ cmake pkg-config wrapQtAppsHook ];
+
nativeBuildInputs = [
+
cmake
+
qt5.wrapQtAppsHook
+
pkg-config
+
];
buildInputs = [
fftwFloat
-
boost
-
gnuradio
liquid-dsp
-
qtbase
+
qt5.qtbase
];
meta = with lib; {
+44 -24
pkgs/applications/radio/qradiolink/default.nix
···
-
{ lib, stdenv, fetchFromGitHub, alsaLib, boost
-
, qt4, libpulseaudio, codec2, libconfig
-
, gnuradio, gr-osmosdr, gsm
-
, libopus, libjpeg, protobuf, qwt, speex
-
} :
-
-
let
-
version = "0.5.0";
+
{ lib
+
, fetchFromGitHub
+
, libpulseaudio
+
, libconfig
+
# Needs a gnuradio built with qt gui support
+
, gnuradio3_8
+
# Not gnuradioPackages'
+
, codec2
+
, log4cpp
+
, gmp
+
, gsm
+
, libopus
+
, libjpeg
+
, libsndfile
+
, libftdi
+
, protobuf
+
, speex
+
, speexdsp
+
}:
-
in stdenv.mkDerivation {
+
gnuradio3_8.pkgs.mkDerivation rec {
pname = "qradiolink";
-
inherit version;
+
version = "0.8.5-2";
src = fetchFromGitHub {
-
owner = "kantooon";
+
owner = "qradiolink";
repo = "qradiolink";
rev = version;
-
sha256 = "0xhg5zhjznmls5m3rhpk1qx0dipxmca12s85w15d0i7qwva2f1gi";
+
sha256 = "MgHfKR3AJW3pIN9oCBr4BWxk1fGSCpLmMzjxvuTmuFA=";
};
preBuild = ''
-
cd ext
+
cd src/ext
protoc --cpp_out=. Mumble.proto
protoc --cpp_out=. QRadioLink.proto
-
cd ..
+
cd ../..
qmake
'';
installPhase = ''
-
mkdir -p $out/bin
-
cp qradiolink $out/bin
+
install -D qradiolink $out/bin/qradiolink
+
install -Dm644 src/res/icon.png $out/share/pixmaps/qradiolink.png
+
install -Dm644 qradiolink.desktop $out/share/applications/qradiolink.desktop
'';
buildInputs = [
-
qt4
-
alsaLib
-
boost
-
libpulseaudio
+
gnuradio3_8.unwrapped.boost
codec2
+
log4cpp
+
gmp
+
libpulseaudio
libconfig
gsm
-
gnuradio
-
gr-osmosdr
+
gnuradio3_8.pkgs.osmosdr
libopus
libjpeg
+
speex
+
speexdsp
+
gnuradio3_8.qt.qtbase
+
gnuradio3_8.qt.qtmultimedia
+
libftdi
+
libsndfile
+
gnuradio3_8.qwt
+
];
+
nativeBuildInputs = [
protobuf
-
speex
-
qwt
+
gnuradio3_8.qt.qmake
+
gnuradio3_8.qt.wrapQtAppsHook
];
enableParallelBuilding = true;
+159
pkgs/applications/radio/uhd/3.5.nix
···
+
{ lib
+
, stdenv
+
, fetchurl
+
, fetchFromGitHub
+
, cmake
+
, pkg-config
+
# See https://files.ettus.com/manual_archive/v3.15.0.0/html/page_build_guide.html for dependencies explanations
+
, boost
+
, enableLibuhd_C_api ? true
+
# requires numpy
+
, enableLibuhd_Python_api ? false
+
, python3
+
, enableExamples ? false
+
, enableUtils ? false
+
, enableLiberio ? false
+
, liberio
+
, libusb1
+
, enableDpdk ? false
+
, dpdk
+
# Devices
+
, enableOctoClock ? true
+
, enableMpmd ? true
+
, enableB100 ? true
+
, enableB200 ? true
+
, enableUsrp1 ? true
+
, enableUsrp2 ? true
+
, enableX300 ? true
+
, enableN230 ? true
+
, enableN300 ? true
+
, enableN320 ? true
+
, enableE300 ? true
+
, enableE320 ? true
+
}:
+
+
let
+
onOffBool = b: if b then "ON" else "OFF";
+
inherit (lib) optionals;
+
in
+
+
stdenv.mkDerivation rec {
+
pname = "uhd";
+
# UHD seems to use three different version number styles: x.y.z, xxx_yyy_zzz
+
# and xxx.yyy.zzz. Hrmpf... style keeps changing
+
version = "3.15.0.0";
+
+
src = fetchFromGitHub {
+
owner = "EttusResearch";
+
repo = "uhd";
+
rev = "v${version}";
+
sha256 = "0jknln88a69fh244670nb7qrflbyv0vvdxfddb5g8ncpb6hcg8qf";
+
};
+
# Firmware images are downloaded (pre-built) from the respective release on Github
+
uhdImagesSrc = fetchurl {
+
url = "https://github.com/EttusResearch/uhd/releases/download/v${version}/uhd-images_${version}.tar.xz";
+
sha256 = "1fir1a13ac07mqhm4sr34cixiqj2difxq0870qv1wr7a7cbfw6vp";
+
};
+
+
cmakeFlags = [
+
"-DENABLE_LIBUHD=ON"
+
"-DENABLE_USB=ON"
+
"-DENABLE_TESTS=ON" # This installs tests as well so we delete them via postPhases
+
"-DENABLE_EXAMPLES=${onOffBool enableExamples}"
+
"-DENABLE_UTILS=${onOffBool enableUtils}"
+
"-DENABLE_LIBUHD_C_API=${onOffBool enableLibuhd_C_api}"
+
"-DENABLE_LIBUHD_PYTHON_API=${onOffBool enableLibuhd_Python_api}"
+
"-DENABLE_LIBERIO=${onOffBool enableLiberio}"
+
"-DENABLE_DPDK=${onOffBool enableDpdk}"
+
# Devices
+
"-DENABLE_OCTOCLOCK=${onOffBool enableOctoClock}"
+
"-DENABLE_MPMD=${onOffBool enableMpmd}"
+
"-DENABLE_B100=${onOffBool enableB100}"
+
"-DENABLE_B200=${onOffBool enableB200}"
+
"-DENABLE_USRP1=${onOffBool enableUsrp1}"
+
"-DENABLE_USRP2=${onOffBool enableUsrp2}"
+
"-DENABLE_X300=${onOffBool enableX300}"
+
"-DENABLE_N230=${onOffBool enableN230}"
+
"-DENABLE_N300=${onOffBool enableN300}"
+
"-DENABLE_N320=${onOffBool enableN320}"
+
"-DENABLE_E300=${onOffBool enableE300}"
+
"-DENABLE_E320=${onOffBool enableE320}"
+
]
+
# TODO: Check if this still needed
+
# ABI differences GCC 7.1
+
# /nix/store/wd6r25miqbk9ia53pp669gn4wrg9n9cj-gcc-7.3.0/include/c++/7.3.0/bits/vector.tcc:394:7: note: parameter passing for argument of type 'std::vector<uhd::range_t>::iterator {aka __gnu_cxx::__normal_iterator<uhd::range_t*, std::vector<uhd::range_t> >}' changed in GCC 7.1
+
++ [ (lib.optionalString stdenv.isAarch32 "-DCMAKE_CXX_FLAGS=-Wno-psabi") ]
+
;
+
+
# Python + Mako are always required for the build itself but not necessary for runtime.
+
pythonEnv = python3.withPackages (ps: with ps; [ Mako ]
+
++ optionals (enableLibuhd_Python_api) [ numpy setuptools ]
+
++ optionals (enableUtils) [ requests six ]
+
);
+
+
nativeBuildInputs = [
+
cmake
+
pkg-config
+
]
+
# If both enableLibuhd_Python_api and enableUtils are off, we don't need
+
# pythonEnv in buildInputs as it's a 'build' dependency and not a runtime
+
# dependency
+
++ optionals (!enableLibuhd_Python_api && !enableUtils) [ pythonEnv ]
+
;
+
buildInputs = [
+
boost
+
libusb1
+
]
+
# However, if enableLibuhd_Python_api *or* enableUtils is on, we need
+
# pythonEnv for runtime as well. The utilities' runtime dependencies are
+
# handled at the environment
+
++ optionals (enableLibuhd_Python_api || enableUtils) [ pythonEnv ]
+
++ optionals (enableLiberio) [ liberio ]
+
++ optionals (enableDpdk) [ dpdk ]
+
;
+
+
doCheck = true;
+
+
# Build only the host software
+
preConfigure = "cd host";
+
# TODO: Check if this still needed, perhaps relevant:
+
# https://files.ettus.com/manual_archive/v3.15.0.0/html/page_build_guide.html#build_instructions_unix_arm
+
patches = if stdenv.isAarch32 then ./neon.patch else null;
+
+
postPhases = [ "installFirmware" "removeInstalledTests" ]
+
++ optionals (enableUtils) [ "moveUdevRules" ]
+
;
+
+
# UHD expects images in `$CMAKE_INSTALL_PREFIX/share/uhd/images`
+
installFirmware = ''
+
mkdir -p "$out/share/uhd/images"
+
tar --strip-components=1 -xvf "${uhdImagesSrc}" -C "$out/share/uhd/images"
+
'';
+
+
# -DENABLE_TESTS=ON installs the tests, we don't need them in the output
+
removeInstalledTests = ''
+
rm -r $out/lib/uhd/tests
+
'';
+
+
# Moves the udev rules to the standard location, needed only if utils are
+
# enabled
+
moveUdevRules = ''
+
mkdir -p $out/lib/udev/rules.d
+
mv $out/lib/uhd/utils/uhd-usrp.rules $out/lib/udev/rules.d/
+
'';
+
+
meta = with lib; {
+
description = "USRP Hardware Driver (for Software Defined Radio)";
+
longDescription = ''
+
The USRP Hardware Driver (UHD) software is the hardware driver for all
+
USRP (Universal Software Radio Peripheral) devices.
+
+
USRP devices are designed and sold by Ettus Research, LLC and its parent
+
company, National Instruments.
+
'';
+
homepage = "https://uhd.ettus.com/";
+
license = licenses.gpl3Plus;
+
platforms = platforms.linux ++ platforms.darwin;
+
maintainers = with maintainers; [ bjornfor fpletz tomberek ];
+
};
+
}
+9 -8
pkgs/applications/radio/uhd/default.nix
···
-
{ lib, stdenv
+
{ lib
+
, stdenv
, fetchurl
, fetchFromGitHub
, cmake
···
, enableLibuhd_C_api ? true
# requires numpy
, enableLibuhd_Python_api ? false
-
, python3 ? null
+
, python3
, enableExamples ? false
, enableUtils ? false
, enableLiberio ? false
-
, liberio ? null
-
, libusb1 ? null
+
, liberio
+
, libusb1
, enableDpdk ? false
-
, dpdk ? null
+
, dpdk
# Devices
, enableOctoClock ? true
, enableMpmd ? true
···
pname = "uhd";
# UHD seems to use three different version number styles: x.y.z, xxx_yyy_zzz
# and xxx.yyy.zzz. Hrmpf... style keeps changing
-
version = "3.15.0.0";
+
version = "4.0.0.0";
src = fetchFromGitHub {
owner = "EttusResearch";
repo = "uhd";
rev = "v${version}";
-
sha256 = "0jknln88a69fh244670nb7qrflbyv0vvdxfddb5g8ncpb6hcg8qf";
+
sha256 = "NCyiI4pIPw0nBRFdUGpgZ/x2mWz+Qm78ZGACUnSbGSs=";
};
# Firmware images are downloaded (pre-built) from the respective release on Github
uhdImagesSrc = fetchurl {
url = "https://github.com/EttusResearch/uhd/releases/download/v${version}/uhd-images_${version}.tar.xz";
-
sha256 = "1fir1a13ac07mqhm4sr34cixiqj2difxq0870qv1wr7a7cbfw6vp";
+
sha256 = "Xfx0bsHUQ5+Dp+xk0sVWWP83oyXQcUH5AX4PNEE7fY4=";
};
cmakeFlags = [
+12 -248
pkgs/applications/video/kodi/default.nix
···
-
{ stdenv, lib, fetchFromGitHub, autoconf, automake, libtool, makeWrapper
-
, pkg-config, cmake, gnumake, yasm, python3Packages
-
, libgcrypt, libgpgerror, libunistring
-
, boost, avahi, lame
-
, gettext, pcre-cpp, yajl, fribidi, which
-
, openssl, gperf, tinyxml2, taglib, libssh, swig, jre_headless
-
, gtest, ncurses, spdlog
-
, libxml2, systemd
-
, alsaLib, libGLU, libGL, fontconfig, freetype, ftgl
-
, libjpeg, libpng, libtiff
-
, libmpeg2, libsamplerate, libmad
-
, libogg, libvorbis, flac, libxslt
-
, lzo, libcdio, libmodplug, libass, libbluray
-
, sqlite, libmysqlclient, nasm, gnutls, libva, libdrm
-
, curl, bzip2, zip, unzip, glxinfo
-
, libcec, libcec_platform, dcadec, libuuid
-
, libcrossguid, libmicrohttpd
-
, bluez, doxygen, giflib, glib, harfbuzz, lcms2, libidn, libpthreadstubs, libtasn1
-
, libplist, p11-kit, zlib, flatbuffers, fmt, fstrcmp, rapidjson
-
, lirc
-
, x11Support ? true, libX11, xorgproto, libXt, libXmu, libXext, libXinerama, libXrandr, libXtst, libXfixes, xdpyinfo, libXdmcp
-
, dbusSupport ? true, dbus ? null
-
, joystickSupport ? true, cwiid ? null
-
, nfsSupport ? true, libnfs ? null
-
, pulseSupport ? true, libpulseaudio ? null
-
, rtmpSupport ? true, rtmpdump ? null
-
, sambaSupport ? true, samba ? null
-
, udevSupport ? true, udev ? null
-
, usbSupport ? false, libusb-compat-0_1 ? null
-
, vdpauSupport ? true, libvdpau ? null
-
, useWayland ? false, wayland ? null, wayland-protocols ? null
-
, waylandpp ? null, libxkbcommon ? null
-
, useGbm ? false, mesa ? null, libinput ? null
-
, buildPackages
-
}:
-
-
assert dbusSupport -> dbus != null;
-
assert nfsSupport -> libnfs != null;
-
assert pulseSupport -> libpulseaudio != null;
-
assert rtmpSupport -> rtmpdump != null;
-
assert sambaSupport -> samba != null;
-
assert udevSupport -> udev != null;
-
assert usbSupport -> libusb-compat-0_1 != null && ! udevSupport; # libusb-compat-0_1 won't be used if udev is avaliable
-
assert vdpauSupport -> libvdpau != null;
-
assert useWayland -> wayland != null && wayland-protocols != null && waylandpp != null && libxkbcommon != null;
-
assert useGbm || useWayland || x11Support;
-
+
{ callPackage, ... } @ args:
let
-
kodiReleaseDate = "20210219";
-
kodiVersion = "19.0";
-
rel = "Matrix";
-
-
kodi_src = fetchFromGitHub {
-
owner = "xbmc";
-
repo = "xbmc";
-
rev = "${kodiVersion}-${rel}";
-
sha256 = "097dg6a7v4ia85jx1pmlpwzdpqcqxlrmniqd005q73zvgj67zc2p";
-
};
-
-
ffmpeg = stdenv.mkDerivation rec {
-
pname = "kodi-ffmpeg";
-
version = "4.3.1";
-
src = fetchFromGitHub {
-
owner = "xbmc";
-
repo = "FFmpeg";
-
rev = "${version}-${rel}-Beta1";
-
sha256 = "1c5rwlxn6xj501iw7masdv2p6wb9rkmd299lmlkx97sw1kvxvg2w";
-
};
-
preConfigure = ''
-
cp ${kodi_src}/tools/depends/target/ffmpeg/{CMakeLists.txt,*.cmake} .
-
sed -i 's/ --cpu=''${CPU}//' CMakeLists.txt
-
sed -i 's/--strip=''${CMAKE_STRIP}/--strip=''${CMAKE_STRIP} --ranlib=''${CMAKE_RANLIB}/' CMakeLists.txt
-
'';
-
cmakeFlags = lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
-
"-DCROSSCOMPILING=ON"
-
"-DCPU=${stdenv.hostPlatform.parsed.cpu.name}"
-
"-DOS=${stdenv.hostPlatform.parsed.kernel.name}"
-
"-DPKG_CONFIG_EXECUTABLE=pkg-config"
-
];
-
buildInputs = [ libidn libtasn1 p11-kit zlib libva ]
-
++ lib.optional vdpauSupport libvdpau;
-
nativeBuildInputs = [ cmake nasm pkg-config gnutls ];
-
};
-
-
# We can build these externally but FindLibDvd.cmake forces us to build it
-
# them, so we currently just use them for the src.
-
libdvdcss = fetchFromGitHub {
-
owner = "xbmc";
-
repo = "libdvdcss";
-
rev = "1.4.2-${rel}-Beta-5";
-
sha256 = "0j41ydzx0imaix069s3z07xqw9q95k7llh06fc27dcn6f7b8ydyl";
-
};
-
-
libdvdnav = fetchFromGitHub {
-
owner = "xbmc";
-
repo = "libdvdnav";
-
rev = "6.0.0-${rel}-Alpha-3";
-
sha256 = "0qwlf4lgahxqxk1r2pzl866mi03pbp7l1fc0rk522sc0ak2s9jhb";
-
};
-
-
libdvdread = fetchFromGitHub {
-
owner = "xbmc";
-
repo = "libdvdread";
-
rev = "6.0.0-${rel}-Alpha-3";
-
sha256 = "1xxn01mhkdnp10cqdr357wx77vyzfb5glqpqyg8m0skyi75aii59";
-
};
-
-
kodi_platforms =
-
lib.optional useGbm "gbm" ++
-
lib.optional useWayland "wayland" ++
-
lib.optional x11Support "x11"
-
;
-
-
in stdenv.mkDerivation {
-
name = "kodi-${lib.optionalString useWayland "wayland-"}${kodiVersion}";
-
-
src = kodi_src;
-
-
buildInputs = [
-
gnutls libidn libtasn1 nasm p11-kit
-
libxml2 python3Packages.python
-
boost libmicrohttpd
-
gettext pcre-cpp yajl fribidi libva libdrm
-
openssl gperf tinyxml2 taglib libssh
-
gtest ncurses spdlog
-
alsaLib libGL libGLU fontconfig freetype ftgl
-
libjpeg libpng libtiff
-
libmpeg2 libsamplerate libmad
-
libogg libvorbis flac libxslt systemd
-
lzo libcdio libmodplug libass libbluray
-
sqlite libmysqlclient avahi lame
-
curl bzip2 zip glxinfo
-
libcec libcec_platform dcadec libuuid
-
libgcrypt libgpgerror libunistring
-
libcrossguid libplist
-
bluez giflib glib harfbuzz lcms2 libpthreadstubs
-
ffmpeg flatbuffers fmt fstrcmp rapidjson
-
lirc
-
]
-
++ lib.optional x11Support [
-
libX11 xorgproto libXt libXmu libXext.dev libXdmcp
-
libXinerama libXrandr.dev libXtst libXfixes
-
]
-
++ lib.optional dbusSupport dbus
-
++ lib.optional joystickSupport cwiid
-
++ lib.optional nfsSupport libnfs
-
++ lib.optional pulseSupport libpulseaudio
-
++ lib.optional rtmpSupport rtmpdump
-
++ lib.optional sambaSupport samba
-
++ lib.optional udevSupport udev
-
++ lib.optional usbSupport libusb-compat-0_1
-
++ lib.optional vdpauSupport libvdpau
-
++ lib.optionals useWayland [
-
wayland
-
waylandpp.dev
-
wayland-protocols
-
# Not sure why ".dev" is needed here, but CMake doesn't find libxkbcommon otherwise
-
libxkbcommon.dev
-
]
-
++ lib.optional useGbm [
-
libxkbcommon.dev
-
mesa.dev
-
libinput.dev
-
];
-
-
nativeBuildInputs = [
-
cmake
-
doxygen
-
makeWrapper
-
which
-
pkg-config gnumake
-
autoconf automake libtool # still needed for some components. Check if that is the case with 19.0
-
jre_headless yasm gettext python3Packages.python flatbuffers
-
-
# for TexturePacker
-
giflib zlib libpng libjpeg lzo
-
] ++ lib.optionals useWayland [ wayland-protocols waylandpp.bin ];
-
-
depsBuildBuild = [
-
buildPackages.stdenv.cc
-
];
-
-
cmakeFlags = [
-
"-DAPP_RENDER_SYSTEM=${if useGbm then "gles" else "gl"}"
-
"-Dlibdvdcss_URL=${libdvdcss}"
-
"-Dlibdvdnav_URL=${libdvdnav}"
-
"-Dlibdvdread_URL=${libdvdread}"
-
"-DGIT_VERSION=${kodiReleaseDate}"
-
"-DENABLE_EVENTCLIENTS=ON"
-
"-DENABLE_INTERNAL_CROSSGUID=OFF"
-
"-DENABLE_OPTICAL=ON"
-
"-DLIRC_DEVICE=/run/lirc/lircd"
-
"-DSWIG_EXECUTABLE=${buildPackages.swig}/bin/swig"
-
"-DFLATBUFFERS_FLATC_EXECUTABLE=${buildPackages.flatbuffers}/bin/flatc"
-
"-DPYTHON_EXECUTABLE=${buildPackages.python3Packages.python}/bin/python"
-
] ++ lib.optional useWayland [
-
"-DWAYLANDPP_SCANNER=${buildPackages.waylandpp}/bin/wayland-scanner++"
-
];
-
-
# 14 tests fail but the biggest issue is that every test takes 30 seconds -
-
# I'm guessing there is a thing waiting to time out
-
doCheck = false;
-
-
preConfigure = ''
-
cmakeFlagsArray+=("-DCORE_PLATFORM_NAME=${lib.concatStringsSep " " kodi_platforms}")
-
'' + lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
-
# Need these tools on the build system when cross compiling,
-
# hacky, but have found no other way.
-
CXX=${stdenv.cc.targetPrefix}c++ LD=ld make -C tools/depends/native/JsonSchemaBuilder
-
cmakeFlags+=" -DWITH_JSONSCHEMABUILDER=$PWD/tools/depends/native/JsonSchemaBuilder/bin"
-
-
CXX=${stdenv.cc.targetPrefix}c++ LD=ld make EXTRA_CONFIGURE= -C tools/depends/native/TexturePacker
-
cmakeFlags+=" -DWITH_TEXTUREPACKER=$PWD/tools/depends/native/TexturePacker/bin"
-
'';
-
-
postPatch = ''
-
substituteInPlace xbmc/platform/posix/PosixTimezone.cpp \
-
--replace 'usr/share/zoneinfo' 'etc/zoneinfo'
-
'';
-
-
postInstall = ''
-
for p in $(ls $out/bin/) ; do
-
wrapProgram $out/bin/$p \
-
--prefix PATH ":" "${lib.makeBinPath ([ python3Packages.python glxinfo ] ++ lib.optional x11Support xdpyinfo ++ lib.optional sambaSupport samba)}" \
-
--prefix LD_LIBRARY_PATH ":" "${lib.makeLibraryPath
-
([ curl systemd libmad libvdpau libcec libcec_platform libass ]
-
++ lib.optional nfsSupport libnfs
-
++ lib.optional rtmpSupport rtmpdump)}"
-
done
-
-
substituteInPlace $out/share/xsessions/kodi.desktop \
-
--replace kodi-standalone $out/bin/kodi-standalone
-
'';
-
-
doInstallCheck = true;
-
-
installCheckPhase = "$out/bin/kodi --version";
-
-
passthru = {
-
pythonPackages = python3Packages;
+
unwrapped = callPackage ./unwrapped.nix (removeAttrs args [ "callPackage" ]);
+
kodiPackages = callPackage ./packages.nix { kodi = unwrapped; };
+
in
+
unwrapped.overrideAttrs (oldAttrs: {
+
passthru = oldAttrs.passthru // {
+
packages = kodiPackages;
+
withPackages = func: callPackage ./wrapper.nix {
+
kodi = unwrapped;
+
addons = kodiPackages.requiredKodiAddons (func kodiPackages);
+
};
};
-
-
meta = with lib; {
-
description = "Media center";
-
homepage = "https://kodi.tv/";
-
license = licenses.gpl2;
-
platforms = platforms.linux;
-
maintainers = with maintainers; [ titanous edwtjo peterhoeg sephalon ];
-
};
-
}
+
})
+78 -75
pkgs/applications/video/kodi/plugins.nix pkgs/applications/video/kodi/packages.nix
···
{ lib, stdenv, callPackage, fetchFromGitHub
-
, cmake, kodiPlain, libcec_platform, tinyxml, pugixml
+
, cmake, kodi, libcec_platform, tinyxml, pugixml
, steam, udev, libusb1, jsoncpp, libhdhomerun, zlib
, python3Packages, expat, glib, nspr, nss, openssl
, libssh, libarchive, lzma, bzip2, lz4, lzo }:
···
let self = rec {
-
pluginDir = "/share/kodi/addons";
+
addonDir = "/share/kodi/addons";
rel = "Matrix";
-
kodi = kodiPlain;
+
inherit kodi;
# Convert derivation to a kodi module. Stolen from ../../../top-level/python-packages.nix
-
toKodiPlugin = drv: drv.overrideAttrs(oldAttrs: {
+
toKodiAddon = drv: drv.overrideAttrs(oldAttrs: {
# Use passthru in order to prevent rebuilds when possible.
passthru = (oldAttrs.passthru or {})// {
-
kodiPluginFor = kodi;
-
requiredKodiPlugins = requiredKodiPlugins drv.propagatedBuildInputs;
+
kodiAddonFor = kodi;
+
requiredKodiAddons = requiredKodiAddons drv.propagatedBuildInputs;
};
});
-
# Check whether a derivation provides a Kodi plugin.
-
hasKodiPlugin = drv: drv ? kodiPluginFor && drv.kodiPluginFor == kodi;
+
# Check whether a derivation provides a Kodi addon.
+
hasKodiAddon = drv: drv ? kodiAddonFor && drv.kodiAddonFor == kodi;
-
# Get list of required Kodi plugins given a list of derivations.
-
requiredKodiPlugins = drvs: let
-
modules = filter hasKodiPlugin drvs;
-
in unique (modules ++ concatLists (catAttrs "requiredKodiPlugins" modules));
-
-
kodiWithPlugins = func: callPackage ./wrapper.nix {
-
inherit kodi;
-
plugins = requiredKodiPlugins (func self);
-
};
+
# Get list of required Kodi addons given a list of derivations.
+
requiredKodiAddons = drvs: let
+
modules = filter hasKodiAddon drvs;
+
in unique (modules ++ concatLists (catAttrs "requiredKodiAddons" modules));
kodi-platform = stdenv.mkDerivation rec {
project = "kodi-platform";
···
};
nativeBuildInputs = [ cmake ];
-
buildInputs = [ kodiPlain libcec_platform tinyxml ];
+
buildInputs = [ kodi libcec_platform tinyxml ];
};
-
mkKodiPlugin = { plugin, namespace, version, sourceDir ? null, ... }@args:
-
toKodiPlugin (stdenv.mkDerivation ({
-
name = "kodi-plugin-${plugin}-${version}";
+
buildKodiAddon =
+
{ name ? "${attrs.pname}-${attrs.version}"
+
, namespace
+
, sourceDir ? ""
+
, ... } @ attrs:
+
toKodiAddon (stdenv.mkDerivation ({
+
name = "kodi-" + name;
dontStrip = true;
extraRuntimeDependencies = [ ];
installPhase = ''
-
${if sourceDir == null then "" else "cd $src/$sourceDir"}
-
d=$out${pluginDir}/${namespace}
+
cd $src/$sourceDir
+
d=$out${addonDir}/${namespace}
mkdir -p $d
sauce="."
[ -d ${namespace} ] && sauce=${namespace}
cp -R "$sauce/"* $d
'';
-
} // args));
+
} // attrs));
-
mkKodiABIPlugin = { plugin, namespace, version, extraBuildInputs ? [],
-
extraRuntimeDependencies ? [], extraInstallPhase ? "", ... }@args:
-
toKodiPlugin (stdenv.mkDerivation ({
-
name = "kodi-plugin-${plugin}-${version}";
+
buildKodiBinaryAddon =
+
{ name ? "${attrs.pname}-${attrs.version}"
+
, namespace
+
, version
+
, extraBuildInputs ? []
+
, extraRuntimeDependencies ? []
+
, extraInstallPhase ? "", ... } @ attrs:
+
toKodiAddon (stdenv.mkDerivation ({
+
name = "kodi-" + name;
dontStrip = true;
nativeBuildInputs = [ cmake ];
-
buildInputs = [ kodiPlain kodi-platform libcec_platform ] ++ extraBuildInputs;
+
buildInputs = [ kodi kodi-platform libcec_platform ] ++ extraBuildInputs;
inherit extraRuntimeDependencies;
···
"-DOVERRIDE_PATHS=1"
];
-
# kodi checks for plugin .so libs existance in the addon folder (share/...)
+
# kodi checks for addon .so libs existance in the addon folder (share/...)
# and the non-wrapped kodi lib/... folder before even trying to dlopen
# them. Symlinking .so, as setting LD_LIBRARY_PATH is of no use
installPhase = let n = namespace; in ''
make install
-
ln -s $out/lib/addons/${n}/${n}.so.${version} $out${pluginDir}/${n}/${n}.so.${version}
+
ln -s $out/lib/addons/${n}/${n}.so.${version} $out${addonDir}/${n}/${n}.so.${version}
${extraInstallPhase}
'';
-
} // args));
+
} // attrs));
-
advanced-launcher = mkKodiPlugin rec {
+
advanced-launcher = buildKodiAddon rec {
-
plugin = "advanced-launcher";
+
pname = "advanced-launcher";
namespace = "plugin.program.advanced.launcher";
version = "2.5.8";
src = fetchFromGitHub {
owner = "edwtjo";
-
repo = plugin;
+
repo = pname;
rev = version;
sha256 = "142vvgs37asq5m54xqhjzqvgmb0xlirvm0kz6lxaqynp0vvgrkx2";
};
···
};
-
advanced-emulator-launcher = mkKodiPlugin rec {
+
advanced-emulator-launcher = buildKodiAddon rec {
-
plugin = "advanced-emulator-launcher";
+
pname = "advanced-emulator-launcher";
namespace = "plugin.program.advanced.emulator.launcher";
version = "0.9.6";
···
};
mkController = controller: {
-
${controller} = mkKodiPlugin rec {
-
plugin = pname + "-" + controller;
+
${controller} = buildKodiAddon rec {
+
pname = pname + "-" + controller;
namespace = "game.controller." + controller;
sourceDir = "addons/" + namespace;
inherit version src meta;
···
broken = true; # requires port to python3
};
in {
-
service = mkKodiPlugin {
-
plugin = pname + "-service";
+
service = buildKodiAddon {
+
pname = pname + "-service";
version = "1.2.1";
namespace = "service.hyper.launcher";
inherit src meta;
};
-
plugin = mkKodiPlugin {
-
plugin = pname;
+
plugin = buildKodiAddon {
namespace = "plugin.hyper.launcher";
-
inherit version src meta;
+
inherit pname version src meta;
};
};
-
joystick = mkKodiABIPlugin rec {
+
joystick = buildKodiBinaryAddon rec {
+
pname = namespace;
namespace = "peripheral.joystick";
version = "1.7.1";
-
plugin = namespace;
src = fetchFromGitHub {
owner = "xbmc";
···
extraBuildInputs = [ tinyxml udev ];
};
-
simpleplugin = mkKodiPlugin rec {
-
plugin = "simpleplugin";
+
simpleplugin = buildKodiAddon rec {
+
pname = "simpleplugin";
namespace = "script.module.simpleplugin";
version = "2.3.2";
···
};
};
-
svtplay = mkKodiPlugin rec {
+
svtplay = buildKodiAddon rec {
-
plugin = "svtplay";
+
pname = "svtplay";
namespace = "plugin.video.svtplay";
version = "5.1.12";
src = fetchFromGitHub {
-
name = plugin + "-" + version + ".tar.gz";
+
name = pname + "-" + version + ".tar.gz";
owner = "nilzen";
-
repo = "xbmc-" + plugin;
+
repo = "xbmc-" + pname;
rev = "v${version}";
sha256 = "04j1nhm7mh9chs995lz6bv1vsq5xzk7a7c0lmk4bnfv8jrfpj0w6";
};
···
};
-
steam-controller = mkKodiABIPlugin rec {
+
steam-controller = buildKodiBinaryAddon rec {
+
pname = namespace;
namespace = "peripheral.steamcontroller";
version = "0.11.0";
-
plugin = namespace;
src = fetchFromGitHub {
owner = "kodi-game";
···
};
-
steam-launcher = mkKodiPlugin {
+
steam-launcher = buildKodiAddon {
-
plugin = "steam-launcher";
+
pname = "steam-launcher";
namespace = "script.steam.launcher";
version = "3.5.1";
···
};
};
-
pdfreader = mkKodiPlugin rec {
-
plugin = "pdfreader";
+
pdfreader = buildKodiAddon rec {
+
pname = "pdfreader";
namespace = "plugin.image.pdf";
version = "2.0.2";
···
};
};
-
pvr-hts = mkKodiABIPlugin rec {
+
pvr-hts = buildKodiBinaryAddon rec {
-
plugin = "pvr-hts";
+
pname = "pvr-hts";
namespace = "pvr.hts";
version = "8.2.2";
···
};
-
pvr-hdhomerun = mkKodiABIPlugin rec {
+
pvr-hdhomerun = buildKodiBinaryAddon rec {
-
plugin = "pvr-hdhomerun";
+
pname = "pvr-hdhomerun";
namespace = "pvr.hdhomerun";
version = "7.1.0";
···
};
-
pvr-iptvsimple = mkKodiABIPlugin rec {
+
pvr-iptvsimple = buildKodiBinaryAddon rec {
-
plugin = "pvr-iptvsimple";
+
pname = "pvr-iptvsimple";
namespace = "pvr.iptvsimple";
version = "7.4.2";
···
extraBuildInputs = [ zlib pugixml ];
};
-
osmc-skin = mkKodiPlugin rec {
+
osmc-skin = buildKodiAddon rec {
-
plugin = "osmc-skin";
+
pname = "osmc-skin";
namespace = "skin.osmc";
version = "18.0.0";
···
};
};
-
yatp = python3Packages.toPythonModule (mkKodiPlugin rec {
-
plugin = "yatp";
+
yatp = python3Packages.toPythonModule (buildKodiAddon rec {
+
pname = "yatp";
namespace = "plugin.video.yatp";
version = "3.3.2";
···
};
});
-
inputstream-adaptive = mkKodiABIPlugin rec {
+
inputstream-adaptive = buildKodiBinaryAddon rec {
-
plugin = "inputstream-adaptive";
+
pname = "inputstream-adaptive";
namespace = "inputstream.adaptive";
version = "2.6.7";
···
extraRuntimeDependencies = [ glib nspr nss stdenv.cc.cc.lib ];
extraInstallPhase = let n = namespace; in ''
-
ln -s $out/lib/addons/${n}/libssd_wv.so $out/${pluginDir}/${n}/libssd_wv.so
+
ln -s $out/lib/addons/${n}/libssd_wv.so $out/${addonDir}/${n}/libssd_wv.so
'';
meta = {
···
};
};
-
vfs-sftp = mkKodiABIPlugin rec {
+
vfs-sftp = buildKodiBinaryAddon rec {
+
pname = namespace;
namespace = "vfs.sftp";
version = "2.0.0";
-
plugin = namespace;
src = fetchFromGitHub {
owner = "xbmc";
···
extraBuildInputs = [ openssl libssh zlib ];
};
-
vfs-libarchive = mkKodiABIPlugin rec {
+
vfs-libarchive = buildKodiBinaryAddon rec {
+
pname = namespace;
namespace = "vfs.libarchive";
version = "2.0.0";
-
plugin = namespace;
src = fetchFromGitHub {
owner = "xbmc";
+242
pkgs/applications/video/kodi/unwrapped.nix
···
+
{ stdenv, lib, fetchFromGitHub, autoconf, automake, libtool, makeWrapper
+
, pkg-config, cmake, gnumake, yasm, python3Packages
+
, libgcrypt, libgpgerror, libunistring
+
, boost, avahi, lame
+
, gettext, pcre-cpp, yajl, fribidi, which
+
, openssl, gperf, tinyxml2, taglib, libssh, swig, jre_headless
+
, gtest, ncurses, spdlog
+
, libxml2, systemd
+
, alsaLib, libGLU, libGL, fontconfig, freetype, ftgl
+
, libjpeg, libpng, libtiff
+
, libmpeg2, libsamplerate, libmad
+
, libogg, libvorbis, flac, libxslt
+
, lzo, libcdio, libmodplug, libass, libbluray
+
, sqlite, libmysqlclient, nasm, gnutls, libva, libdrm
+
, curl, bzip2, zip, unzip, glxinfo
+
, libcec, libcec_platform, dcadec, libuuid
+
, libcrossguid, libmicrohttpd
+
, bluez, doxygen, giflib, glib, harfbuzz, lcms2, libidn, libpthreadstubs, libtasn1
+
, libplist, p11-kit, zlib, flatbuffers, fmt, fstrcmp, rapidjson
+
, lirc
+
, x11Support ? true, libX11, xorgproto, libXt, libXmu, libXext, libXinerama, libXrandr, libXtst, libXfixes, xdpyinfo, libXdmcp
+
, dbusSupport ? true, dbus
+
, joystickSupport ? true, cwiid
+
, nfsSupport ? true, libnfs
+
, pulseSupport ? true, libpulseaudio
+
, rtmpSupport ? true, rtmpdump
+
, sambaSupport ? true, samba
+
, udevSupport ? true, udev
+
, usbSupport ? false, libusb-compat-0_1
+
, vdpauSupport ? true, libvdpau
+
, waylandSupport ? false, wayland, wayland-protocols
+
, waylandpp ? null, libxkbcommon
+
, gbmSupport ? false, mesa, libinput
+
, buildPackages
+
}:
+
+
assert usbSupport -> !udevSupport; # libusb-compat-0_1 won't be used if udev is avaliable
+
assert gbmSupport || waylandSupport || x11Support;
+
+
let
+
kodiReleaseDate = "20210219";
+
kodiVersion = "19.0";
+
rel = "Matrix";
+
+
kodi_src = fetchFromGitHub {
+
owner = "xbmc";
+
repo = "xbmc";
+
rev = "${kodiVersion}-${rel}";
+
sha256 = "097dg6a7v4ia85jx1pmlpwzdpqcqxlrmniqd005q73zvgj67zc2p";
+
};
+
+
ffmpeg = stdenv.mkDerivation rec {
+
pname = "kodi-ffmpeg";
+
version = "4.3.1";
+
src = fetchFromGitHub {
+
owner = "xbmc";
+
repo = "FFmpeg";
+
rev = "${version}-${rel}-Beta1";
+
sha256 = "1c5rwlxn6xj501iw7masdv2p6wb9rkmd299lmlkx97sw1kvxvg2w";
+
};
+
preConfigure = ''
+
cp ${kodi_src}/tools/depends/target/ffmpeg/{CMakeLists.txt,*.cmake} .
+
sed -i 's/ --cpu=''${CPU}//' CMakeLists.txt
+
sed -i 's/--strip=''${CMAKE_STRIP}/--strip=''${CMAKE_STRIP} --ranlib=''${CMAKE_RANLIB}/' CMakeLists.txt
+
'';
+
cmakeFlags = lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+
"-DCROSSCOMPILING=ON"
+
"-DCPU=${stdenv.hostPlatform.parsed.cpu.name}"
+
"-DOS=${stdenv.hostPlatform.parsed.kernel.name}"
+
"-DPKG_CONFIG_EXECUTABLE=pkg-config"
+
];
+
buildInputs = [ libidn libtasn1 p11-kit zlib libva ]
+
++ lib.optional vdpauSupport libvdpau;
+
nativeBuildInputs = [ cmake nasm pkg-config gnutls ];
+
};
+
+
# We can build these externally but FindLibDvd.cmake forces us to build it
+
# them, so we currently just use them for the src.
+
libdvdcss = fetchFromGitHub {
+
owner = "xbmc";
+
repo = "libdvdcss";
+
rev = "1.4.2-${rel}-Beta-5";
+
sha256 = "0j41ydzx0imaix069s3z07xqw9q95k7llh06fc27dcn6f7b8ydyl";
+
};
+
+
libdvdnav = fetchFromGitHub {
+
owner = "xbmc";
+
repo = "libdvdnav";
+
rev = "6.0.0-${rel}-Alpha-3";
+
sha256 = "0qwlf4lgahxqxk1r2pzl866mi03pbp7l1fc0rk522sc0ak2s9jhb";
+
};
+
+
libdvdread = fetchFromGitHub {
+
owner = "xbmc";
+
repo = "libdvdread";
+
rev = "6.0.0-${rel}-Alpha-3";
+
sha256 = "1xxn01mhkdnp10cqdr357wx77vyzfb5glqpqyg8m0skyi75aii59";
+
};
+
+
kodi_platforms = lib.optional gbmSupport "gbm"
+
++ lib.optional waylandSupport "wayland"
+
++ lib.optional x11Support "x11";
+
+
in stdenv.mkDerivation {
+
pname = "kodi";
+
version = kodiVersion;
+
+
src = kodi_src;
+
+
buildInputs = [
+
gnutls libidn libtasn1 nasm p11-kit
+
libxml2 python3Packages.python
+
boost libmicrohttpd
+
gettext pcre-cpp yajl fribidi libva libdrm
+
openssl gperf tinyxml2 taglib libssh
+
gtest ncurses spdlog
+
alsaLib libGL libGLU fontconfig freetype ftgl
+
libjpeg libpng libtiff
+
libmpeg2 libsamplerate libmad
+
libogg libvorbis flac libxslt systemd
+
lzo libcdio libmodplug libass libbluray
+
sqlite libmysqlclient avahi lame
+
curl bzip2 zip unzip glxinfo
+
libcec libcec_platform dcadec libuuid
+
libgcrypt libgpgerror libunistring
+
libcrossguid libplist
+
bluez giflib glib harfbuzz lcms2 libpthreadstubs
+
ffmpeg flatbuffers fmt fstrcmp rapidjson
+
lirc
+
]
+
++ lib.optional x11Support [
+
libX11 xorgproto libXt libXmu libXext.dev libXdmcp
+
libXinerama libXrandr.dev libXtst libXfixes
+
]
+
++ lib.optional dbusSupport dbus
+
++ lib.optional joystickSupport cwiid
+
++ lib.optional nfsSupport libnfs
+
++ lib.optional pulseSupport libpulseaudio
+
++ lib.optional rtmpSupport rtmpdump
+
++ lib.optional sambaSupport samba
+
++ lib.optional udevSupport udev
+
++ lib.optional usbSupport libusb-compat-0_1
+
++ lib.optional vdpauSupport libvdpau
+
++ lib.optionals waylandSupport [
+
wayland
+
waylandpp.dev
+
wayland-protocols
+
# Not sure why ".dev" is needed here, but CMake doesn't find libxkbcommon otherwise
+
libxkbcommon.dev
+
]
+
++ lib.optional gbmSupport [
+
libxkbcommon.dev
+
mesa.dev
+
libinput.dev
+
];
+
+
nativeBuildInputs = [
+
cmake
+
doxygen
+
makeWrapper
+
which
+
pkg-config gnumake
+
autoconf automake libtool # still needed for some components. Check if that is the case with 19.0
+
jre_headless yasm gettext python3Packages.python flatbuffers
+
+
# for TexturePacker
+
giflib zlib libpng libjpeg lzo
+
] ++ lib.optionals waylandSupport [ wayland-protocols waylandpp.bin ];
+
+
depsBuildBuild = [
+
buildPackages.stdenv.cc
+
];
+
+
cmakeFlags = [
+
"-DAPP_RENDER_SYSTEM=${if gbmSupport then "gles" else "gl"}"
+
"-Dlibdvdcss_URL=${libdvdcss}"
+
"-Dlibdvdnav_URL=${libdvdnav}"
+
"-Dlibdvdread_URL=${libdvdread}"
+
"-DGIT_VERSION=${kodiReleaseDate}"
+
"-DENABLE_EVENTCLIENTS=ON"
+
"-DENABLE_INTERNAL_CROSSGUID=OFF"
+
"-DENABLE_OPTICAL=ON"
+
"-DLIRC_DEVICE=/run/lirc/lircd"
+
"-DSWIG_EXECUTABLE=${buildPackages.swig}/bin/swig"
+
"-DFLATBUFFERS_FLATC_EXECUTABLE=${buildPackages.flatbuffers}/bin/flatc"
+
"-DPYTHON_EXECUTABLE=${buildPackages.python3Packages.python}/bin/python"
+
] ++ lib.optional waylandSupport [
+
"-DWAYLANDPP_SCANNER=${buildPackages.waylandpp}/bin/wayland-scanner++"
+
];
+
+
# 14 tests fail but the biggest issue is that every test takes 30 seconds -
+
# I'm guessing there is a thing waiting to time out
+
doCheck = false;
+
+
preConfigure = ''
+
cmakeFlagsArray+=("-DCORE_PLATFORM_NAME=${lib.concatStringsSep " " kodi_platforms}")
+
'' + lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
+
# Need these tools on the build system when cross compiling,
+
# hacky, but have found no other way.
+
CXX=${stdenv.cc.targetPrefix}c++ LD=ld make -C tools/depends/native/JsonSchemaBuilder
+
cmakeFlags+=" -DWITH_JSONSCHEMABUILDER=$PWD/tools/depends/native/JsonSchemaBuilder/bin"
+
+
CXX=${stdenv.cc.targetPrefix}c++ LD=ld make EXTRA_CONFIGURE= -C tools/depends/native/TexturePacker
+
cmakeFlags+=" -DWITH_TEXTUREPACKER=$PWD/tools/depends/native/TexturePacker/bin"
+
'';
+
+
postPatch = ''
+
substituteInPlace xbmc/platform/posix/PosixTimezone.cpp \
+
--replace 'usr/share/zoneinfo' 'etc/zoneinfo'
+
'';
+
+
postInstall = ''
+
for p in $(ls $out/bin/) ; do
+
wrapProgram $out/bin/$p \
+
--prefix PATH ":" "${lib.makeBinPath ([ python3Packages.python glxinfo ]
+
++ lib.optional x11Support xdpyinfo ++ lib.optional sambaSupport samba)}" \
+
--prefix LD_LIBRARY_PATH ":" "${lib.makeLibraryPath
+
([ curl systemd libmad libvdpau libcec libcec_platform libass ]
+
++ lib.optional nfsSupport libnfs
+
++ lib.optional rtmpSupport rtmpdump)}"
+
done
+
+
substituteInPlace $out/share/xsessions/kodi.desktop \
+
--replace kodi-standalone $out/bin/kodi-standalone
+
'';
+
+
doInstallCheck = true;
+
+
installCheckPhase = "$out/bin/kodi --version";
+
+
passthru = {
+
pythonPackages = python3Packages;
+
};
+
+
meta = with lib; {
+
description = "Media center";
+
homepage = "https://kodi.tv/";
+
license = licenses.gpl2Plus;
+
platforms = platforms.linux;
+
maintainers = with maintainers; [ titanous edwtjo peterhoeg sephalon ];
+
};
+
}
+6 -13
pkgs/applications/video/kodi/wrapper.nix
···
-
{ lib, makeWrapper, buildEnv, kodi, plugins }:
+
{ lib, makeWrapper, buildEnv, kodi, addons }:
-
let
-
drvName = builtins.parseDrvName kodi.name;
-
in buildEnv {
-
name = "${drvName.name}-with-plugins-${drvName.version}";
+
buildEnv {
+
name = "${kodi.name}-env";
-
paths = [ kodi ] ++ plugins;
+
paths = [ kodi ] ++ addons;
pathsToLink = [ "/share" ];
buildInputs = [ makeWrapper ];
···
for exe in kodi{,-standalone}
do
makeWrapper ${kodi}/bin/$exe $out/bin/$exe \
-
--prefix PYTHONPATH : ${kodi.pythonPackages.makePythonPath plugins} \
+
--prefix PYTHONPATH : ${kodi.pythonPackages.makePythonPath addons} \
--prefix KODI_HOME : $out/share/kodi \
--prefix LD_LIBRARY_PATH ":" "${lib.makeLibraryPath
(lib.concatMap
-
(plugin: plugin.extraRuntimeDependencies or []) plugins)}"
+
(plugin: plugin.extraRuntimeDependencies or []) addons)}"
done
'';
-
-
meta = kodi.meta // {
-
description = kodi.meta.description
-
+ " (with plugins: ${lib.concatMapStringsSep ", " (x: x.name) plugins})";
-
};
}
+2 -2
pkgs/data/fonts/twitter-color-emoji/default.nix
···
}:
let
-
version = "13.0.1";
+
version = "13.0.2";
twemojiSrc = fetchFromGitHub {
name = "twemoji";
owner = "twitter";
repo = "twemoji";
rev = "v${version}";
-
sha256 = "0acinlv2l3s1jga2i9wh16mvgkxw4ipzgvjx8c80zd104lpdpgd9";
+
sha256 = "069pyq09jfzwp3xla8vmhbyyam32x2iyp0s29xcxlkj22p99bg6d";
};
pythonEnv =
+45
pkgs/development/gnuradio-modules/ais/default.nix
···
+
{ lib
+
, stdenv
+
, mkDerivation
+
, fetchFromGitHub
+
, cmake
+
, pkg-config
+
, python
+
, boost
+
, cppunit
+
, log4cpp
+
, osmosdr
+
}:
+
+
mkDerivation rec {
+
pname = "gr-ais";
+
version = "2015-12-20";
+
src = fetchFromGitHub {
+
owner = "bistromath";
+
repo = "gr-ais";
+
rev = "cdc1f52745853f9c739c718251830eb69704b26e";
+
sha256 = "1vl3kk8xr2mh5lf31zdld7yzmwywqffffah8iblxdzblgsdwxfl6";
+
};
+
disabledForGRafter = "3.8";
+
+
nativeBuildInputs = [
+
cmake
+
pkg-config
+
python
+
];
+
+
buildInputs = [
+
cppunit
+
osmosdr
+
boost
+
log4cpp
+
];
+
+
meta = with lib; {
+
description = "Gnuradio block for ais";
+
homepage = "https://github.com/bistromath/gr-ais";
+
license = licenses.gpl3Plus;
+
platforms = platforms.unix;
+
maintainers = with maintainers; [ mog ];
+
};
+
}
+48
pkgs/development/gnuradio-modules/gsm/default.nix
···
+
{ lib
+
, mkDerivation
+
, fetchFromGitHub
+
, cmake
+
, pkg-config
+
, cppunit
+
, swig
+
, boost
+
, log4cpp
+
, python
+
, libosmocore
+
, osmosdr
+
}:
+
+
mkDerivation {
+
pname = "gr-gsm";
+
version = "2016-08-25";
+
src = fetchFromGitHub {
+
owner = "ptrkrysik";
+
repo = "gr-gsm";
+
rev = "3ca05e6914ef29eb536da5dbec323701fbc2050d";
+
sha256 = "13nnq927kpf91iqccr8db9ripy5czjl5jiyivizn6bia0bam2pvx";
+
};
+
disabledForGRafter = "3.8";
+
+
nativeBuildInputs = [
+
cmake
+
pkg-config
+
swig
+
python
+
];
+
+
buildInputs = [
+
cppunit
+
log4cpp
+
boost
+
libosmocore
+
osmosdr
+
];
+
+
meta = with lib; {
+
description = "Gnuradio block for gsm";
+
homepage = "https://github.com/ptrkrysik/gr-gsm";
+
license = licenses.gpl3Plus;
+
platforms = platforms.linux;
+
maintainers = with maintainers; [ mog ];
+
};
+
}
+61
pkgs/development/gnuradio-modules/limesdr/default.nix
···
+
{ lib
+
, mkDerivation
+
, fetchFromGitHub
+
, gnuradio
+
, cmake
+
, pkg-config
+
, doxygen
+
, swig
+
, python
+
, log4cpp
+
, mpir
+
, boost
+
, gmp
+
, icu
+
, limesuite
+
}:
+
+
let
+
version = {
+
"3.7" = "2.0.0";
+
"3.8" = "3.0.1";
+
"3.9" = null;
+
}.${gnuradio.versionAttr.major};
+
src = fetchFromGitHub {
+
owner = "myriadrf";
+
repo = "gr-limesdr";
+
rev = "v${version}";
+
sha256 = {
+
"3.7" = "0ldqvfwl0gil89l9s31fjf9d7ki0dk572i8vna336igfaz348ypq";
+
"3.8" = "ffs+8TU0yr6IW1xZJ/abQ1CQWGZM+zYqPRJxy3ZvM9U=";
+
"3.9" = null;
+
}.${gnuradio.versionAttr.major};
+
};
+
in mkDerivation {
+
pname = "gr-limesdr";
+
inherit version src;
+
disabledForGRafter = "3.9";
+
+
nativeBuildInputs = [
+
cmake
+
pkg-config
+
swig
+
python
+
];
+
buildInputs = [
+
log4cpp
+
mpir
+
boost
+
gmp
+
icu
+
limesuite
+
];
+
+
meta = with lib; {
+
description = "Gnuradio source and sink blocks for LimeSDR";
+
homepage = "https://wiki.myriadrf.org/Gr-limesdr_Plugin_for_GNURadio";
+
license = licenses.mit;
+
platforms = platforms.linux;
+
maintainers = [ maintainers.markuskowa ];
+
};
+
}
+25
pkgs/development/gnuradio-modules/mkDerivation.nix
···
+
{ lib
+
, unwrapped
+
}:
+
+
mkDerivation:
+
+
args:
+
+
# Check if it's supposed to not get built for the current gnuradio version
+
if (builtins.hasAttr "disabledForGRafter" args) &&
+
(lib.versionAtLeast unwrapped.versionAttr.major args.disabledForGRafter) then
+
let name = args.name or "${args.pname}"; in
+
throw "Package ${name} is incompatible with GNURadio ${unwrapped.versionAttr.major}"
+
else
+
+
let
+
args_ = {
+
enableParallelBuilding = args.enableParallelBuilding or true;
+
nativeBuildInputs = (args.nativeBuildInputs or []);
+
# We add gnuradio and volk itself by default - most gnuradio based packages
+
# will not consider it a depenency worth mentioning and it will almost
+
# always be needed
+
buildInputs = (args.buildInputs or []) ++ [ unwrapped unwrapped.volk ];
+
};
+
in mkDerivation (args // args_)
+46
pkgs/development/gnuradio-modules/nacl/default.nix
···
+
{ lib
+
, mkDerivation
+
, fetchFromGitHub
+
, cmake
+
, pkg-config
+
, cppunit
+
, swig
+
, boost
+
, log4cpp
+
, python
+
, libsodium
+
}:
+
+
mkDerivation {
+
pname = "gr-nacl";
+
version = "2017-04-10";
+
src = fetchFromGitHub {
+
owner = "stwunsch";
+
repo = "gr-nacl";
+
rev = "15276bb0fcabf5fe4de4e58df3d579b5be0e9765";
+
sha256 = "018np0qlk61l7mlv3xxx5cj1rax8f1vqrsrch3higsl25yydbv7v";
+
};
+
disabledForGRafter = "3.8";
+
+
nativeBuildInputs = [
+
cmake
+
pkg-config
+
swig
+
python
+
];
+
+
buildInputs = [
+
cppunit
+
log4cpp
+
boost
+
libsodium
+
];
+
+
meta = with lib; {
+
description = "Gnuradio block for encryption";
+
homepage = "https://github.com/stwunsch/gr-nacl";
+
license = licenses.gpl3Plus;
+
platforms = platforms.linux ++ platforms.darwin;
+
maintainers = with maintainers; [ mog ];
+
};
+
}
+86
pkgs/development/gnuradio-modules/osmosdr/default.nix
···
+
{ lib
+
, mkDerivation
+
, fetchgit
+
, gnuradio
+
, cmake
+
, pkg-config
+
, log4cpp
+
, mpir
+
, boost
+
, gmp
+
, fftwFloat
+
, python
+
, swig
+
, uhd
+
, icu
+
, airspy
+
, hackrf
+
, libbladeRF
+
, rtl-sdr
+
, soapysdr-with-plugins
+
}:
+
+
let
+
version = {
+
"3.7" = "0.1.5";
+
"3.8" = "0.2.2";
+
"3.9" = null;
+
}.${gnuradio.versionAttr.major};
+
src = fetchgit {
+
url = "git://git.osmocom.org/gr-osmosdr";
+
rev = "v${version}";
+
sha256 = {
+
"3.7" = "0bf9bnc1c3c4yqqqgmg3nhygj6rcfmyk6pybi27f7461d2cw1drv";
+
"3.8" = "HT6xlN6cJAnvF+s1g2I1uENhBJJizdADlLXeSD0rEqs=";
+
"3.9" = null;
+
}.${gnuradio.versionAttr.major};
+
};
+
in mkDerivation {
+
pname = "gr-osmosdr";
+
inherit version src;
+
disabledForGRafter = "3.9";
+
+
buildInputs = [
+
log4cpp
+
mpir
+
boost
+
fftwFloat
+
gmp
+
icu
+
airspy
+
hackrf
+
libbladeRF
+
rtl-sdr
+
soapysdr-with-plugins
+
] ++ lib.optional (gnuradio.hasFeature "gr-uhd" gnuradio.features) [
+
uhd
+
];
+
cmakeFlags = [
+
(if (gnuradio.hasFeature "python-support" gnuradio.features) then
+
"-DENABLE_PYTHON=ON"
+
else
+
"-DENABLE_PYTHON=OFF"
+
)
+
];
+
nativeBuildInputs = [
+
cmake
+
pkg-config
+
swig
+
] ++ lib.optionals (gnuradio.hasFeature "python-support" gnuradio.features) [
+
(if (gnuradio.versionAttr.major == "3.7") then
+
python.pkgs.cheetah
+
else
+
python.pkgs.Mako
+
)
+
python
+
]
+
;
+
+
meta = with lib; {
+
description = "Gnuradio block for OsmoSDR and rtl-sdr";
+
homepage = "https://sdr.osmocom.org/trac/wiki/GrOsmoSDR";
+
license = licenses.gpl3Plus;
+
maintainers = with maintainers; [ bjornfor ];
+
platforms = platforms.unix;
+
};
+
}
+59
pkgs/development/gnuradio-modules/rds/default.nix
···
+
{ lib
+
, mkDerivation
+
, fetchFromGitHub
+
, gnuradio
+
, cmake
+
, pkg-config
+
, swig
+
, python
+
, log4cpp
+
, mpir
+
, boost
+
, gmp
+
, icu
+
}:
+
+
let
+
version = {
+
"3.7" = "1.1.0";
+
"3.8" = "3.8.0";
+
"3.9" = null;
+
}.${gnuradio.versionAttr.major};
+
src = fetchFromGitHub {
+
owner = "bastibl";
+
repo = "gr-rds";
+
rev = "v${version}";
+
sha256 = {
+
"3.7" = "0jkzchvw0ivcxsjhi1h0mf7k13araxf5m4wi5v9xdgqxvipjzqfy";
+
"3.8" = "+yKLJu2bo7I2jkAiOdjvdhZwxFz9NFgTmzcLthH9Y5o=";
+
"3.9" = null;
+
}.${gnuradio.versionAttr.major};
+
};
+
in mkDerivation {
+
pname = "gr-rds";
+
inherit version src;
+
disabledForGRafter = "3.9";
+
+
buildInputs = [
+
log4cpp
+
mpir
+
boost
+
gmp
+
icu
+
];
+
+
nativeBuildInputs = [
+
cmake
+
pkg-config
+
swig
+
python
+
];
+
+
meta = with lib; {
+
description = "Gnuradio block for radio data system";
+
homepage = "https://github.com/bastibl/gr-rds";
+
license = licenses.gpl2Plus;
+
platforms = platforms.unix;
+
maintainers = with maintainers; [ mog ];
+
};
+
}
+3
pkgs/development/libraries/iniparser/default.nix
···
cp libiniparser.a $out/lib
cp libiniparser.so.1 $out/lib
ln -s libiniparser.so.1 $out/lib/libiniparser.so
+
+
mkdir -p $out/lib/pkgconfig
+
substituteAll ${./iniparser.pc.in} $out/lib/pkgconfig/iniparser.pc
'';
meta = with lib; {
+12
pkgs/development/libraries/iniparser/iniparser.pc.in
···
+
prefix=@out@
+
exec_prefix=@out@
+
libdir=${exec_prefix}/lib
+
includedir=${prefix}/include
+
datarootdir=${prefix}/share
+
datadir=${datarootdir}
+
+
Name: libiniparser
+
Description: Iniparser library
+
Version: @version@
+
Libs: -L${libdir} -liniparser
+
Cflags: -I${includedir}
+2 -2
pkgs/development/libraries/libdigidocpp/default.nix
···
, xercesc, xml-security-c, pkg-config, xsd, zlib, xalanc, xxd }:
stdenv.mkDerivation rec {
-
version = "3.14.4";
+
version = "3.14.5";
pname = "libdigidocpp";
src = fetchurl {
url = "https://github.com/open-eid/libdigidocpp/releases/download/v${version}/libdigidocpp-${version}.tar.gz";
-
sha256 = "1x72icq5lp5cfv6kyxqc3863wa164s0g41nbi6gldr8syprzdk1l";
+
sha256 = "sha256-PSrYoz5ID88pYs/4rP2kz0NpI0pK6wcnx62HokE0g20=";
};
nativeBuildInputs = [ cmake pkg-config xxd ];
+2 -2
pkgs/development/libraries/libhandy/default.nix
···
stdenv.mkDerivation rec {
pname = "libhandy";
-
version = "1.0.3";
+
version = "1.2.0";
outputs = [ "out" "dev" "devdoc" "glade" ];
outputBin = "dev";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-
sha256 = "sha256-VZuzrMLDYkiJF+ty7SW9wYH0riaslNF3Y0zF00yGf3o=";
+
sha256 = "sha256-OfWQriCRDnb+HAYHsuvliXUPRWENau7Fww4u5gKiCyU=";
};
nativeBuildInputs = [
+2 -2
pkgs/development/libraries/libisoburn/default.nix
···
stdenv.mkDerivation rec {
pname = "libisoburn";
-
version = "1.5.2";
+
version = "1.5.4";
src = fetchurl {
url = "http://files.libburnia-project.org/releases/${pname}-${version}.tar.gz";
-
sha256 = "1v4hanapr02wf2i6rncc62z8cyc18078nb2y6q4hp3hxa74hnwnc";
+
sha256 = "sha256-LYmEbUOIDxf6WRxTs76kL/uANijk5jDGgPwskYT3kTI=";
};
buildInputs = [ attr zlib libburn libisofs ];
+2 -2
pkgs/development/libraries/liblinear/default.nix
···
soVersion = "4";
in stdenv.mkDerivation rec {
pname = "liblinear";
-
version = "2.42";
+
version = "2.43";
src = fetchFromGitHub {
owner = "cjlin1";
repo = "liblinear";
rev = "v${builtins.replaceStrings ["."] [""] version}";
-
sha256 = "0p0hpjajfkskhd7jiv5zwhfa8hi49q3mgifjlkqvy99xspv98ijj";
+
sha256 = "sha256-qcSMuWHJgsapWs1xgxv3fKSXcx18q8cwyIn3E4RCGKA=";
};
postPatch = ''
+2 -2
pkgs/development/libraries/libofx/default.nix
···
stdenv.mkDerivation rec {
pname = "libofx";
-
version = "0.10.0";
+
version = "0.10.1";
src = fetchFromGitHub {
owner = "LibOFX";
repo = pname;
rev = version;
-
sha256 = "sha256-gdLh5ZUciN4FCJwTCaJSKJ5RjXgNDXnDOUWkyTZwf2c=";
+
sha256 = "sha256-QIasZKwSD9YCidHCxT/HOThxE5HEQWD0I2/loDP6mlU=";
};
preConfigure = "./autogen.sh";
+2 -2
pkgs/development/libraries/oneDNN/default.nix
···
# https://github.com/oneapi-src/oneDNN#oneapi-deep-neural-network-library-onednn
stdenv.mkDerivation rec {
pname = "oneDNN";
-
version = "2.1";
+
version = "2.1.2";
src = fetchFromGitHub {
owner = "oneapi-src";
repo = "oneDNN";
rev = "v${version}";
-
sha256 = "sha256-PZ8r1eNfz4dVxlbtQJSrxiw/Hk6E6wSDapkMy7ux9fI=";
+
sha256 = "sha256-8nXzsY4+XnhKbuYyDWehiWqQEWoEcDBF4KagOg1WlN8=";
};
outputs = [ "out" "dev" "doc" ];
+51
pkgs/development/libraries/volk/default.nix
···
+
{ stdenv
+
, lib
+
, fetchFromGitHub
+
, fetchpatch
+
, cmake
+
, cppunit
+
, python3
+
, enableModTool ? true
+
, removeReferencesTo
+
}:
+
+
stdenv.mkDerivation rec {
+
pname = "volk";
+
version = "2.4.1";
+
+
src = fetchFromGitHub {
+
owner = "gnuradio";
+
repo = pname;
+
rev = "v${version}";
+
sha256 = "fuHJ+p5VN4ThdbQFbzB08VCuy/Zo7m/I1Gs5EQGPeNY=";
+
fetchSubmodules = true;
+
};
+
+
patches = [
+
# Fixes a failing test: https://github.com/gnuradio/volk/pull/434
+
(fetchpatch {
+
url = "https://github.com/gnuradio/volk/pull/434/commits/bce8531b6f1a3c5abe946ed6674b283d54258281.patch";
+
sha256 = "OLW9uF6iL47z63kjvYqwsWtkINav8Xhs+Htqg6Kr4uI=";
+
})
+
];
+
cmakeFlags = lib.optionals (!enableModTool) [ "-DENABLE_MODTOOL=OFF" ];
+
postInstall = ''
+
${removeReferencesTo}/bin/remove-references-to -t ${stdenv.cc} $(readlink -f $out/lib/libvolk.so)
+
'';
+
+
nativeBuildInputs = [
+
cmake
+
python3
+
python3.pkgs.Mako
+
];
+
+
doCheck = true;
+
+
meta = with lib; {
+
homepage = "http://libvolk.org/";
+
description = "The Vector Optimized Library of Kernels";
+
license = licenses.gpl3Plus;
+
maintainers = with maintainers; [ doronbehar ];
+
platforms = platforms.all;
+
};
+
}
+16 -7
pkgs/development/python-modules/Rtree/default.nix
···
-
{ lib, stdenv, buildPythonPackage, fetchPypi, libspatialindex, numpy }:
+
{ lib,
+
stdenv,
+
buildPythonPackage,
+
fetchPypi,
+
libspatialindex,
+
numpy,
+
pytestCheckHook
+
}:
buildPythonPackage rec {
pname = "Rtree";
···
sha256 = "be8772ca34699a9ad3fb4cfe2cfb6629854e453c10b3328039301bbfc128ca3e";
};
-
propagatedBuildInputs = [ libspatialindex ];
+
buildInputs = [ libspatialindex ];
patchPhase = ''
-
substituteInPlace rtree/core.py --replace \
+
substituteInPlace rtree/finder.py --replace \
"find_library('spatialindex_c')" "'${libspatialindex}/lib/libspatialindex_c${stdenv.hostPlatform.extensions.sharedLibrary}'"
'';
-
# Tests appear to be broken due to mysterious memory unsafe issues. See #36760
-
doCheck = false;
-
checkInputs = [ numpy ];
+
checkInputs = [
+
numpy
+
pytestCheckHook
+
];
+
pythonImportsCheck = [ "rtree" ];
meta = with lib; {
description = "R-Tree spatial index for Python GIS";
homepage = "https://toblerity.org/rtree/";
-
license = licenses.lgpl21;
+
license = licenses.mit;
maintainers = with maintainers; [ bgamari ];
};
}
+3 -3
pkgs/development/python-modules/convertdate/default.nix
···
buildPythonPackage rec {
pname = "convertdate";
-
version = "2.3.0";
+
version = "2.3.1";
disabled = isPy27;
···
src = fetchFromGitHub {
owner = "fitnr";
repo = pname;
-
rev = "v${version}";
-
sha256 = "17j188zlp46zmq8qyy4z4f9v25l3zibkwzj8wp4fxqgimjnfj2nr";
+
rev = version;
+
sha256 = "1g8sgd3xc9viy0kb1i4xp6bdn1hzwhrnk8kmismla88scivrhq32";
};
propagatedBuildInputs = [
+1
pkgs/development/python-modules/cryptography/default.nix
···
nativeBuildInputs = lib.optionals (!isPyPy) [
cffi
+
] ++ [
rustPlatform.cargoSetupHook
setuptools-rust
] ++ (with rustPlatform; [ rust.cargo rust.rustc ]);
+2 -2
pkgs/development/tools/analysis/tfsec/default.nix
···
buildGoPackage rec {
pname = "tfsec";
-
version = "0.39.5";
+
version = "0.39.6";
src = fetchFromGitHub {
owner = "tfsec";
repo = pname;
rev = "v${version}";
-
sha256 = "sha256-RDvwZyltPD21CQwZISOrLPVgQeRmPQc6/yssptS4XMw=";
+
sha256 = "sha256-2P+/y3iP/eMGGc0W1lHWWxO+uMy5gvlvjKzZ/8maJ9o=";
};
goPackagePath = "github.com/tfsec/tfsec";
+3 -3
pkgs/development/tools/misc/terraform-ls/default.nix
···
buildGoModule rec {
pname = "terraform-ls";
-
version = "0.14.0";
+
version = "0.15.0";
src = fetchFromGitHub {
owner = "hashicorp";
repo = pname;
rev = "v${version}";
-
sha256 = "sha256-p9q+cSnMN6Na+XZoYSHfE4SCNYOEavXE+eWIaxcD73k=";
+
sha256 = "sha256-/g62LSlaIK67oY6dI8S3Lni85eBBI6piqP2Fsq3HXWQ=";
};
-
vendorSha256 = "sha256-XOIs5Ng0FYz7OfwbrNiVN3GTIABqxlO8ITKGfnC+kWo=";
+
vendorSha256 = "sha256-U0jVdyY4SifPWkOkq3ohY/LvfGcYm4rI+tW1QEm39oo=";
# tests fail in sandbox mode because of trying to download stuff from releases.hashicorp.com
doCheck = false;
+3 -3
pkgs/servers/minio/default.nix
···
buildGoModule rec {
pname = "minio";
-
version = "2021-03-10T05-11-33Z";
+
version = "2021-03-12T00-00-47Z";
src = fetchFromGitHub {
owner = "minio";
repo = "minio";
rev = "RELEASE.${version}";
-
sha256 = "sha256-YwlVZE7TO9qr/8lwLXdZqjxy4NGxTkmLyKFDVlTZPqQ=";
+
sha256 = "sha256-7KHEmnrTw6SBhsImMjcv+b1wvFEg8AXgsuZTGp5iVis=";
};
-
vendorSha256 = "sha256-E+j+ysBKKSyTITmJwHieBcpXdF3+rtt4YS7OVPMC6vI=";
+
vendorSha256 = "sha256-tMt6XRj1dd+AHqWA6WGm5GBFGx+IsP1ijYCj8cmUXy0=";
doCheck = false;
+2 -2
pkgs/servers/monitoring/loki/default.nix
···
}:
buildGoModule rec {
-
version = "2.1.0";
+
version = "2.2.0";
pname = "grafana-loki";
src = fetchFromGitHub {
rev = "v${version}";
owner = "grafana";
repo = "loki";
-
sha256 = "O/3079a67j1i9pgf18SBx0iJcQPVmb0H+K/PzQVBCDQ=";
+
sha256 = "sha256-mEu9z3lhHSE0NMXXViX4OBbIiNba7/RPr+AFmIM77g4=";
};
vendorSha256 = null;
+23
pkgs/servers/monitoring/prometheus/jitsi-exporter.nix
···
+
{ lib, buildGoModule, fetchgit, nixosTests }:
+
+
buildGoModule rec {
+
pname = "jitsiexporter";
+
version = "0.2.18";
+
+
src = fetchgit {
+
url = "https://git.xsfx.dev/prometheus/jitsiexporter";
+
rev = "v${version}";
+
sha256 = "1cf46wp96d9dwlwlffcgbcr0v3xxxfdv6il0zqkm2i7cfsfw0skf";
+
};
+
+
vendorSha256 = null;
+
+
passthru.tests = { inherit (nixosTests.prometheus-exporters) jitsi; };
+
+
meta = with lib; {
+
description = "Export Jitsi Videobridge metrics to Prometheus";
+
homepage = "https://git.xsfx.dev/prometheus/jitsiexporter";
+
license = licenses.mit;
+
maintainers = with maintainers; [ petabyteboy ];
+
};
+
}
+3 -3
pkgs/servers/rtsp-simple-server/default.nix
···
buildGoModule rec {
pname = "rtsp-simple-server";
-
version = "0.14.2";
+
version = "0.15.0";
src = fetchFromGitHub {
owner = "aler9";
repo = pname;
rev = "v${version}";
-
sha256 = "sha256-pnMUUxV4DM2YClwc24l+5Ehh5zc+qEOLTtiqh7c+8PI=";
+
sha256 = "sha256-U0wZ0NrvCQjMLDDjO6Jf6uu5FlHar7Td2zhoU2+MMkM=";
};
-
vendorSha256 = "sha256-oWWUEPEpMLqXucQwUvM6fyGCwttTIV6ZcCM2VZXnKuM=";
+
vendorSha256 = "sha256-dfAuq4iw3NQ4xaabPv7MQ88CYXgivRBeyvbmJ3SSjbI=";
# Tests need docker
doCheck = false;
+3 -3
pkgs/tools/admin/clair/default.nix
···
buildGoModule rec {
pname = "clair";
-
version = "4.0.2";
+
version = "4.0.3";
src = fetchFromGitHub {
owner = "quay";
repo = pname;
rev = "v${version}";
-
sha256 = "sha256-uGvcr7TG/NCi0YoYZnQU11zOxXDhFTnCmLQVxOqmXLY=";
+
sha256 = "sha256-ztp3t55EOUQqTAEUZtHvHK8nTTVOAmYR9vN2hXLhpVw=";
};
-
vendorSha256 = "sha256-CO4U8uSQeHXLPj5PH/SsOI/LjT2Rs/mBHsvNTudx72I=";
+
vendorSha256 = "sha256-+0jp/TvUjpeJJxEs2drVkUb/ua9qqqxome4M9TkpfP4=";
doCheck = false;
+2 -2
pkgs/tools/filesystems/reiser4progs/default.nix
···
{lib, stdenv, fetchurl, libaal}:
-
let version = "2.0.1"; in
+
let version = "2.0.4"; in
stdenv.mkDerivation rec {
pname = "reiser4progs";
inherit version;
src = fetchurl {
url = "mirror://sourceforge/reiser4/reiser4-utils/${pname}-${version}.tar.gz";
-
sha256 = "1r7m95mnp6xmp1j5k99jhmz6g9y2qq7cghlmdxsfbr3xviqfs45d";
+
sha256 = "sha256-WmIkISnRp5BngSfPEKY95HVEt5TBtPKu+RMBwlLsnuA=";
};
buildInputs = [libaal];
+7 -4
pkgs/tools/graphics/resvg/default.nix
···
-
{ lib, rustPlatform, fetchFromGitHub }:
+
{ stdenv, lib, rustPlatform, fetchFromGitHub, libiconv }:
rustPlatform.buildRustPackage rec {
pname = "resvg";
-
version = "0.13.1";
+
version = "0.14.0";
src = fetchFromGitHub {
owner = "RazrFalcon";
repo = pname;
rev = "v${version}";
-
sha256 = "sha256-Jo+dx4+3GpEwOoE8HH0YahBmPvT9Oy2qXMvCJ/NZhF0=";
+
sha256 = "sha256-fd97w6yd9ZX2k8Vq+Vh6jouufGdFE02ZV8mb+BtA3tk=";
};
-
cargoSha256 = "sha256-8Es9NZYsC/9PZ6ytWZTAH42U3vxZtJERPSsno1s4TEc=";
+
cargoSha256 = "sha256-LlEYfjUINQW/YrhNp/Z+fdLQPcvrTjNFtDAk1gyAuj0=";
+
+
buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
doCheck = false;
meta = with lib; {
description = "An SVG rendering library";
homepage = "https://github.com/RazrFalcon/resvg";
+
changelog = "https://github.com/RazrFalcon/resvg/raw/v${version}/CHANGELOG.md";
license = licenses.mpl20;
maintainers = [ maintainers.marsam ];
};
+2 -2
pkgs/tools/inputmethods/ibus-engines/ibus-anthy/default.nix
···
stdenv.mkDerivation rec {
pname = "ibus-anthy";
-
version = "1.5.11";
+
version = "1.5.12";
src = fetchurl {
url = "https://github.com/ibus/ibus-anthy/releases/download/${version}/${pname}-${version}.tar.gz";
-
sha256 = "1zwgswpibh67sgbza8kvg03v06maxc08ihkgm5hmh333sjq9d5c0";
+
sha256 = "sha256-6edY3dRq4pI3bqsXEYf6jyBjDwpXzRKKQSCP3N/fV7s=";
};
buildInputs = [
+2 -2
pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix
···
stdenv.mkDerivation rec {
pname = "ibus-table";
-
version = "1.12.3";
+
version = "1.12.4";
src = fetchFromGitHub {
owner = "kaio";
repo = "ibus-table";
rev = version;
-
sha256 = "sha256-iVbct7p+i8ifSQzOFUUnJU0RHX36cFiTlv7p79iawj8=";
+
sha256 = "sha256-2qST5k2+8gfSf1/FaxXW4qwSQgNw/QKM+1mMWDdrjCU=";
};
postPatch = ''
+3 -3
pkgs/tools/misc/direnv/default.nix
···
buildGoModule rec {
pname = "direnv";
-
version = "2.27.0";
+
version = "2.28.0";
src = fetchFromGitHub {
owner = "direnv";
repo = "direnv";
rev = "v${version}";
-
sha256 = "05vvn59xd2q4yjizh5fprjib5xqq58by80d5avsm8nb1qxf383b1";
+
sha256 = "sha256-iZ3Lf7Yg+N9BWyLLF+MrT2gpPT9BTcp6pNMpfqwcZXo=";
};
-
vendorSha256 = "084x7d7sshcsyim76d6pl6127nlqacgwwnm965srl9y5w5nqzba6";
+
vendorSha256 = "sha256-P8NLY1iGh86ntmYsTVlnNh5akdaM8nzcxDn6Nfmgr84=";
# we have no bash at the moment for windows
BASH_PATH =
+2 -2
pkgs/tools/networking/minio-client/default.nix
···
buildGoModule rec {
pname = "minio-client";
-
version = "2021-03-10T05-59-20Z";
+
version = "2021-03-12T03-36-59Z";
src = fetchFromGitHub {
owner = "minio";
repo = "mc";
rev = "RELEASE.${version}";
-
sha256 = "sha256-IoCM2FA6oNiNT6zWspMEqgq4hZ8tAQVEAqouRlBe/ts=";
+
sha256 = "sha256-aIJjr7KaT4E4Q1Ho4D0emduJWFxdCXCodq7J43r0DMQ=";
};
vendorSha256 = "sha256-aoRdtv/Q7vjn0M7iSYAuyu/3pEH30x6D39xTHqQPvuo=";
+3 -3
pkgs/tools/package-management/emplace/default.nix
···
rustPlatform.buildRustPackage rec {
pname = "emplace";
-
version = "1.2.0";
+
version = "1.2.1";
src = fetchFromGitHub {
owner = "tversteeg";
repo = pname;
rev = "v${version}";
-
sha256 = "sha256-vA+Y4j9Flcrizqh61+4X70FzF5/wK2WVHQRsAUQzKnU=";
+
sha256 = "sha256-5t47QrYWbm8A4E1GhqZwME7rmSfU1SYVniRGSrcRpvk=";
};
-
cargoSha256 = "sha256-zGdjMpB7h+/RdM+wXffUuAyHnks6umyJmzUrANmqAS8=";
+
cargoSha256 = "sha256-/GFpjovPGEgkfJ53+wR8CBDXiQQPDCiIaRG2Ka71dhQ=";
meta = with lib; {
description = "Mirror installed software on multiple machines";
+3 -3
pkgs/tools/security/age/default.nix
···
buildGoModule rec {
pname = "age";
-
version = "1.0.0-beta6";
-
vendorSha256 = "sha256-FTByNpLkWWHAWe5wVDRBGtKap/5+XGHeBMQAIdlPCkA=";
+
version = "1.0.0-rc.1";
+
vendorSha256 = "1qx6pkhq00y0lsi6f82g8hxxh65zk1c0ls91ap6hdlj7ch79bhl2";
src = fetchFromGitHub {
owner = "FiloSottile";
repo = "age";
rev = "v${version}";
-
sha256 = "sha256-1LCcCEf2/R0am0jpA8yKl44+AoUFkbepxp9V6/nZkBQ=";
+
sha256 = "1n25wip4qnd3v9ial1apc2ybx10b9z6lwz7flyss6kvj3x5g9jd1";
};
meta = with lib; {
+3 -3
pkgs/tools/security/teler/default.nix
···
buildGoModule rec {
pname = "teler";
-
version = "1.0.3";
+
version = "1.1.0";
src = fetchFromGitHub {
owner = "kitabisa";
repo = "teler";
rev = "v${version}";
-
sha256 = "sha256-6OeGlpimQtw4w26HRzw2wmd3wjASY199p8XXPD/JMy8=";
+
sha256 = "sha256-0tx/oyHl6s1mj7NyWMZGCJoSuOeB+BMlBrnGY4IN/i4=";
};
-
vendorSha256 = "sha256-L+wjurURpesCA2IK0r1sxvOUvNJT1wiRp75kpe6LH5s=";
+
vendorSha256 = "sha256-KvUnDInUqFW7FypgsppIBQZKNu6HVsEeHtGwdqYtoys=";
# test require internet access
doCheck = false;
+3 -3
pkgs/tools/security/terrascan/default.nix
···
buildGoModule rec {
pname = "terrascan";
-
version = "1.3.3";
+
version = "1.4.0";
src = fetchFromGitHub {
owner = "accurics";
repo = pname;
rev = "v${version}";
-
sha256 = "sha256-mPd4HsWbPUNJTUNjQ5zQztoXZy2b9iLksdGKAjp0A58=";
+
sha256 = "sha256-YUrvdleH332fWDgq8AwUdXkFC7m9ap+OVuQhKlxZfII=";
};
-
vendorSha256 = "sha256-eNQTJHqOCOTAPO+vil6rkV9bNWZIdXxGQPE4IpETFtA=";
+
vendorSha256 = "sha256-CzJ83MsBetrzbBT+fmz8F8MjdrManJAd4xpykh/2938=";
# tests want to download a vulnerable Terraform project
doCheck = false;
+6 -4
pkgs/tools/typesetting/scdoc/default.nix
···
-
{ lib, stdenv, fetchurl }:
+
{ lib, stdenv, fetchFromSourcehut }:
stdenv.mkDerivation rec {
pname = "scdoc";
version = "1.11.1";
-
src = fetchurl {
-
url = "https://git.sr.ht/~sircmpwn/scdoc/archive/${version}.tar.gz";
-
sha256 = "007pm3gspvya58cwb12wpnrm9dq5p28max2s0b2y9rq80nqgqag5";
+
src = fetchFromSourcehut {
+
owner = "~sircmpwn";
+
repo = pname;
+
rev = version;
+
sha256 = "1g37j847j3h4a4qbbfbr6vvsxpifj9v25jgv25nd71d1n0dxlhvk";
};
postPatch = ''
+6 -4
pkgs/tools/wayland/wev/default.nix
···
{ lib
, stdenv
-
, fetchurl
+
, fetchFromSourcehut
, pkg-config
, scdoc
, wayland
···
pname = "wev";
version = "1.0.0";
-
src = fetchurl {
-
url = "https://git.sr.ht/~sircmpwn/wev/archive/${version}.tar.gz";
-
sha256 = "0vlxdkb59v6nb10j28gh1a56sx8jk7ak7liwzv911kpmygnls03g";
+
src = fetchFromSourcehut {
+
owner = "~sircmpwn";
+
repo = pname;
+
rev = version;
+
sha256 = "0l71v3fzgiiv6xkk365q1l08qvaymxd4kpaya6r2g8yzkr7i2hms";
};
nativeBuildInputs = [ pkg-config scdoc wayland ];
+6 -4
pkgs/tools/wayland/wlsunset/default.nix
···
-
{ lib, stdenv, fetchurl, meson, pkg-config, ninja, wayland
+
{ lib, stdenv, fetchFromSourcehut, meson, pkg-config, ninja, wayland
, wayland-protocols
}:
···
pname = "wlsunset";
version = "0.1.0";
-
src = fetchurl {
-
url = "https://git.sr.ht/~kennylevinsen/wlsunset/archive/${version}.tar.gz";
-
sha256 = "0g7mk14hlbwbhq6nqr84452sbgcja3hdxsqf0vws4njhfjgqiv3q";
+
src = fetchFromSourcehut {
+
owner = "~kennylevinsen";
+
repo = pname;
+
rev = version;
+
sha256 = "12snizvf49y40cirhr2brgyldhsykv4k2gnln2sdrajqzhrc98v6";
};
nativeBuildInputs = [ meson pkg-config ninja wayland ];
+6 -4
pkgs/tools/wayland/wshowkeys/default.nix
···
-
{ lib, stdenv, fetchurl
+
{ lib, stdenv, fetchFromSourcehut
, meson, pkg-config, wayland, ninja
, cairo, libinput, pango, wayland-protocols, libxkbcommon
}:
···
pname = "wshowkeys-unstable";
inherit version;
-
src = fetchurl {
-
url = "https://git.sr.ht/~sircmpwn/wshowkeys/archive/${commit}.tar.gz";
-
sha256 = "0iplmw13jmc8d3m307kc047zq8yqwm42kw9fpm270562i3p0qk4d";
+
src = fetchFromSourcehut {
+
owner = "~sircmpwn";
+
repo = "wshowkeys";
+
rev = commit;
+
sha256 = "10kafdja5cwbypspwhvaxjz3hvf51vqjzbgdasl977193cvxgmbs";
};
nativeBuildInputs = [ meson pkg-config wayland ninja ];
+21 -9
pkgs/top-level/aliases.nix
···
gnome_doc_utils = gnome-doc-utils; # added 2018-02-25
gnome_themes_standard = gnome-themes-standard; # added 2018-02-25
gnunet_git = throw "gnunet_git was removed due to gnunet becoming stable"; # added 2019-05-27
-
gnuradio-nacl = gr-nacl; # added 2019-05-27
-
gnuradio-gsm = gr-gsm; # added 2019-05-27
-
gnuradio-ais = gr-ais; # added 2019-05-27
-
gnuradio-limesdr = gr-limesdr; # added 2019-05-27
-
gnuradio-rds = gr-rds; # added 2019-05-27
-
gnuradio-osmosdr = gr-osmosdr; # added 2019-05-27
-
# added 20-10-2020
+
# Added 2020-10-16
gnuradio-with-packages = gnuradio3_7.override {
-
extraPackages = [ gr-nacl gr-gsm gr-ais gr-limesdr gr-rds gr-osmosdr ];
+
extraPackages = lib.attrVals [
+
"osmosdr" "ais" "gsm" "nacl" "rds" "limesdr"
+
] gnuradio3_7Packages;
};
+
gnuradio-nacl = gnuradio3_7.pkgs.nacl; # added 2019-05-27, changed 2020-10-16
+
gnuradio-gsm = gnuradio3_7.pkgs.gsm; # added 2019-05-27, changed 2020-10-16
+
gnuradio-ais = gnuradio3_7.pkgs.ais; # added 2019-05-27, changed 2020-10-16
+
gnuradio-limesdr = gnuradio3_7.pkgs.limesdr; # added 2019-05-27, changed 2020-10-16
+
gnuradio-rds = gnuradio3_7.pkgs.rds; # added 2019-05-27, changed 2020-10-16
+
gnuradio-osmosdr = gnuradio3_7.pkgs.osmosdr; # added 2019-05-27, changed 2020-10-16
+
gr-nacl = gnuradio3_7.pkgs.nacl; # added 2019-05-27, changed 2020-10-16
+
gr-gsm = gnuradio3_7.pkgs.gsm; # added 2019-05-27, changed 2020-10-16
+
gr-ais = gnuradio3_7.pkgs.ais; # added 2019-05-27, changed 2020-10-16
+
gr-limesdr = gnuradio3_7.pkgs.limesdr; # added 2019-05-27, changed 2020-10-16
+
gr-rds = gnuradio3_7.pkgs.rds; # added 2019-05-27, changed 2020-10-16
+
gr-osmosdr = gnuradio3_7.pkgs.osmosdr; # added 2019-05-27, changed 2020-10-16
gnustep-make = gnustep.make; # added 2016-7-6
gnupg20 = throw "gnupg20 has been removed from nixpkgs as upstream dropped support on 2017-12-31";# added 2020-07-12
gnuvd = throw "gnuvd was removed because the backend service is missing"; # added 2020-01-14
···
json_glib = json-glib; # added 2018-02-25
kdecoration-viewer = throw "kdecoration-viewer has been removed from nixpkgs, as there is no upstream activity"; # 2020-06-16
k9copy = throw "k9copy has been removed from nixpkgs, as there is no upstream activity"; # 2020-11-06
+
kodiGBM = kodi-gbm;
+
kodiPlain = kodi;
+
kodiPlainWayland = kodi-wayland;
julia_07 = throw "julia_07 is deprecated in favor of julia_10 LTS"; # added 2020-09-15
julia_11 = throw "julia_11 is deprecated in favor of latest Julia version"; # added 2020-09-15
kdeconnect = plasma5Packages.kdeconnect-kde; # added 2020-10-28
···
xara = throw "xara has been removed from nixpkgs. Unmaintained since 2006"; # added 2020-06-24
xbmc = kodi; # added 2018-04-25
xbmcPlain = kodiPlain; # added 2018-04-25
-
xbmcPlugins = kodiPlugins; # added 2018-04-25
+
xbmcPlugins = kodiPackages; # added 2018-04-25
+
kodiPlugins = kodiPackages; # added 2021-03-09;
xmonad_log_applet_gnome3 = xmonad_log_applet; # added 2018-05-01
xmpppy = throw "xmpppy has been removed from nixpkgs as it is unmaintained and python2-only";
pyIRCt = throw "pyIRCt has been removed from nixpkgs as it is unmaintained and python2-only";
+94 -124
pkgs/top-level/all-packages.nix
···
precice = callPackage ../development/libraries/precice { };
-
pueue = callPackage ../applications/misc/pueue { };
+
pueue = callPackage ../applications/misc/pueue {
+
inherit (darwin.apple_sdk.frameworks) SystemConfiguration;
+
};
pixiecore = callPackage ../tools/networking/pixiecore {};
···
};
volctl = callPackage ../tools/audio/volctl { };
+
+
volk = callPackage ../development/libraries/volk { };
vorta = libsForQt5.callPackage ../applications/backup/vorta { };
···
uefi-firmware-parser = callPackage ../development/tools/analysis/uefi-firmware-parser { };
-
uhd = callPackage ../applications/radio/uhd { };
+
uhd3_5 = callPackage ../applications/radio/uhd/3.5.nix { };
+
uhd = callPackage ../applications/radio/uhd {
+
boost = boost17x;
+
};
uisp = callPackage ../development/tools/misc/uisp { };
···
qm-dsp = callPackage ../development/libraries/audio/qm-dsp { };
-
qradiolink = callPackage ../applications/radio/qradiolink {
-
# 3.8 support is not ready yet:
-
# https://github.com/qradiolink/qradiolink/issues/67#issuecomment-703222573
-
# The non minimal build is used because the 'qtgui' component is needed.
-
# gr-osmosdr is using the same gnuradio as of now.
-
gnuradio = gnuradio3_7-unwrapped;
-
};
+
qradiolink = callPackage ../applications/radio/qradiolink { };
qrupdate = callPackage ../development/libraries/qrupdate { };
···
prometheus-fritzbox-exporter = callPackage ../servers/monitoring/prometheus/fritzbox-exporter.nix { };
prometheus-gitlab-ci-pipelines-exporter = callPackage ../servers/monitoring/prometheus/gitlab-ci-pipelines-exporter.nix { };
prometheus-haproxy-exporter = callPackage ../servers/monitoring/prometheus/haproxy-exporter.nix { };
+
prometheus-jitsi-exporter = callPackage ../servers/monitoring/prometheus/jitsi-exporter.nix { };
prometheus-json-exporter = callPackage ../servers/monitoring/prometheus/json-exporter.nix { };
prometheus-keylight-exporter = callPackage ../servers/monitoring/prometheus/keylight-exporter.nix { };
prometheus-knot-exporter = callPackage ../servers/monitoring/prometheus/knot-exporter.nix { };
···
gksu = callPackage ../applications/misc/gksu { };
-
gnss-sdr = callPackage ../applications/radio/gnss-sdr {
-
boost = boost166;
-
gnuradio = gnuradio3_7-unwrapped;
-
};
+
gnss-sdr = callPackage ../applications/radio/gnss-sdr { };
-
gnuradio-unwrapped = callPackage ../applications/radio/gnuradio {
-
inherit (darwin.apple_sdk.frameworks) CoreAudio;
-
python = python3;
+
gnuradio = callPackage ../applications/radio/gnuradio/wrapper.nix {
+
unwrapped = callPackage ../applications/radio/gnuradio {
+
inherit (darwin.apple_sdk.frameworks) CoreAudio;
+
python = python3;
+
boost = boost17x;
+
};
+
gnuradioPackages = lib.recurseIntoAttrs gnuradio.pkgs;
# A build without gui components and other utilites not needed for end user
# libraries
-
gnuradioMinimal = gnuradio-unwrapped.override {
-
features = {
-
gnuradio-companion = false;
-
python-support = false;
-
gr-ctrlport = false;
-
examples = false;
-
gr-qtgui = false;
-
gr-utils = false;
-
gr-modtool = false;
-
sphinx = false;
-
doxygen = false;
+
gnuradioMinimal = gnuradio.override {
+
wrap = false;
+
unwrapped = gnuradio.unwrapped.override {
+
volk = volk.override {
+
# So it will not reference python
+
enableModTool = false;
+
};
+
features = {
+
gnuradio-companion = false;
+
python-support = false;
+
examples = false;
+
gr-qtgui = false;
+
gr-utils = false;
+
gr-modtool = false;
+
gr-blocktool = false;
+
sphinx = false;
+
doxygen = false;
+
};
-
gnuradio = callPackage ../applications/radio/gnuradio/wrapper.nix {
-
unwrapped = gnuradio-unwrapped;
+
gnuradio3_8 = callPackage ../applications/radio/gnuradio/wrapper.nix {
+
unwrapped = callPackage ../applications/radio/gnuradio/3.8.nix {
+
inherit (darwin.apple_sdk.frameworks) CoreAudio;
+
python = python3;
+
boost = boost17x;
+
};
-
gnuradio3_7-unwrapped = callPackage ../applications/radio/gnuradio/3.7.nix {
-
inherit (darwin.apple_sdk.frameworks) CoreAudio;
-
python = python2;
-
};
+
gnuradio3_8Packages = lib.recurseIntoAttrs gnuradio3_8.pkgs;
# A build without gui components and other utilites not needed if gnuradio is
# used as a c++ library.
-
gnuradio3_7Minimal = gnuradio3_7-unwrapped.override {
-
features = {
-
gnuradio-companion = false;
-
python-support = false;
-
gr-ctrlport = false;
-
gr-qtgui = false;
-
gr-utils = false;
-
sphinx = false;
-
doxygen = false;
-
gr-wxgui = false;
+
gnuradio3_8Minimal = gnuradio3_8.override {
+
wrap = false;
+
unwrapped = gnuradio3_8.unwrapped.override {
+
volk = volk.override {
+
enableModTool = false;
+
};
+
features = {
+
gnuradio-companion = false;
+
python-support = false;
+
examples = false;
+
gr-qtgui = false;
+
gr-utils = false;
+
gr-modtool = false;
+
sphinx = false;
+
doxygen = false;
+
};
gnuradio3_7 = callPackage ../applications/radio/gnuradio/wrapper.nix {
-
unwrapped = gnuradio3_7-unwrapped;
-
};
-
-
grandorgue = callPackage ../applications/audio/grandorgue { };
-
-
gr-nacl = callPackage ../applications/radio/gnuradio/nacl.nix {
-
gnuradio = gnuradio3_7-unwrapped;
+
unwrapped = callPackage ../applications/radio/gnuradio/3.7.nix {
+
inherit (darwin.apple_sdk.frameworks) CoreAudio;
+
python = python2;
+
# Incompatible with uhd4+
+
uhd = uhd3_5;
+
};
-
-
gr-gsm = callPackage ../applications/radio/gnuradio/gsm.nix {
-
gnuradio = gnuradio3_7-unwrapped;
-
};
-
-
gr-ais = callPackage ../applications/radio/gnuradio/ais.nix {
-
gnuradio = gnuradio3_7-unwrapped;
-
};
-
-
gr-limesdr = callPackage ../applications/radio/gnuradio/limesdr.nix {
-
gnuradio = gnuradio3_7-unwrapped;
-
};
-
-
gr-rds = callPackage ../applications/radio/gnuradio/rds.nix {
-
gnuradio = gnuradio3_7-unwrapped;
+
gnuradio3_7Packages = lib.recurseIntoAttrs gnuradio3_7.pkgs;
+
# A build without gui components and other utilites not needed if gnuradio is
+
# used as a c++ library.
+
gnuradio3_7Minimal = gnuradio3_7.override {
+
wrap = false;
+
unwrapped = gnuradio3_7.unwrapped.override {
+
volk = volk.override {
+
enableModTool = false;
+
};
+
features = {
+
gnuradio-companion = false;
+
python-support = false;
+
gr-qtgui = false;
+
gr-utils = false;
+
sphinx = false;
+
doxygen = false;
+
gr-wxgui = false;
+
};
+
};
-
gr-osmosdr = callPackage ../applications/radio/gnuradio/osmosdr.nix {
-
gnuradio = gnuradio3_7-unwrapped;
-
};
+
grandorgue = callPackage ../applications/audio/grandorgue { };
goldendict = libsForQt5.callPackage ../applications/misc/goldendict {
inherit (darwin) libiconv;
···
gpx = callPackage ../applications/misc/gpx { };
-
gqrx = libsForQt514.callPackage ../applications/radio/gqrx {
-
gnuradio = gnuradio3_7Minimal;
-
# Use the same gnuradio for gr-osmosdr as well
-
gr-osmosdr = gr-osmosdr.override {
-
gnuradio = gnuradio3_7Minimal;
-
pythonSupport = false;
-
};
-
};
+
gqrx = callPackage ../applications/radio/gqrx { };
gpx-viewer = callPackage ../applications/misc/gpx-viewer { };
···
inkscape-extensions = recurseIntoAttrs (callPackages ../applications/graphics/inkscape/extensions.nix {});
-
inspectrum = libsForQt514.callPackage ../applications/radio/inspectrum {
-
gnuradio = gnuradioMinimal;
-
};
+
inspectrum = callPackage ../applications/radio/inspectrum { };
ion3 = callPackage ../applications/window-managers/ion-3 {
lua = lua5_1;
···
cores = retroArchCores;
-
wrapKodi = { kodi }: callPackage ../applications/video/kodi/wrapper.nix {
-
inherit kodi;
-
plugins = let inherit (lib) optional optionals; in with kodiPlugins;
-
([]
-
++ optional (config.kodi.enableAdvancedLauncher or false) advanced-launcher
-
++ optional (config.kodi.enableAdvancedEmulatorLauncher or false)
-
advanced-emulator-launcher
-
++ optionals (config.kodi.enableControllers or false)
-
(with controllers;
-
[ default dreamcast gba genesis mouse n64 nes ps snes ])
-
++ optional (config.kodi.enableExodus or false) exodus
-
++ optionals (config.kodi.enableHyperLauncher or false)
-
(with hyper-launcher; [ plugin service pdfreader ])
-
++ optional (config.kodi.enableJoystick or false) joystick
-
++ optional (config.kodi.enableOSMCskin or false) osmc-skin
-
++ optional (config.kodi.enableSVTPlay or false) svtplay
-
++ optional (config.kodi.enableSteamController or false) steam-controller
-
++ optional (config.kodi.enableSteamLauncher or false) steam-launcher
-
++ optional (config.kodi.enablePVRHTS or false) pvr-hts
-
++ optional (config.kodi.enablePVRHDHomeRun or false) pvr-hdhomerun
-
++ optional (config.kodi.enablePVRIPTVSimple or false) pvr-iptvsimple
-
++ optional (config.kodi.enableInputStreamAdaptive or false) inputstream-adaptive
-
++ optional (config.kodi.enableVFSSFTP or false) vfs-sftp
-
++ optional (config.kodi.enableVFSLibarchive or false) vfs-libarchive
-
);
-
};
-
wsjtx = qt5.callPackage ../applications/radio/wsjtx { };
wxhexeditor = callPackage ../applications/editors/wxhexeditor {
···
gtk = gtk2;
-
kodiPlain = callPackage ../applications/video/kodi { };
-
-
kodiPlainWayland = callPackage ../applications/video/kodi {
-
useWayland = true;
-
};
-
-
kodiGBM = callPackage ../applications/video/kodi {
-
useGbm = true;
-
};
-
-
kodiPlugins = recurseIntoAttrs (callPackage ../applications/video/kodi/plugins.nix {});
+
kodiPackages = recurseIntoAttrs (kodi.packages);
-
kodi = wrapKodi {
-
kodi = kodiPlain;
-
};
+
kodi = callPackage ../applications/video/kodi { };
-
kodi-wayland = wrapKodi {
-
kodi = kodiPlainWayland;
+
kodi-wayland = callPackage ../applications/video/kodi {
+
waylandSupport = true;
-
kodi-gbm = wrapKodi {
-
kodi = kodiGBM;
+
kodi-gbm = callPackage ../applications/video/kodi {
+
gbmSupport = true;
kodi-cli = callPackage ../tools/misc/kodi-cli { };
+47
pkgs/top-level/gnuradio-packages.nix
···
+
{ lib
+
, stdenv
+
, newScope
+
, gnuradio # unwrapped gnuradio
+
}:
+
+
lib.makeScope newScope ( self:
+
+
let
+
# Modeled after qt's
+
mkDerivationWith = import ../development/gnuradio-modules/mkDerivation.nix {
+
inherit lib;
+
unwrapped = gnuradio;
+
};
+
mkDerivation = mkDerivationWith stdenv.mkDerivation;
+
+
callPackage = self.newScope {
+
inherit (gnuradio)
+
# Packages that are potentially overriden and used as deps here.
+
boost
+
uhd
+
volk
+
;
+
inherit mkDerivationWith mkDerivation;
+
};
+
+
in {
+
+
inherit callPackage mkDerivation mkDerivationWith;
+
+
### Packages
+
+
inherit gnuradio;
+
+
osmosdr = callPackage ../development/gnuradio-modules/osmosdr/default.nix { };
+
+
ais = callPackage ../development/gnuradio-modules/ais/default.nix { };
+
+
gsm = callPackage ../development/gnuradio-modules/gsm/default.nix { };
+
+
nacl = callPackage ../development/gnuradio-modules/nacl/default.nix { };
+
+
rds = callPackage ../development/gnuradio-modules/rds/default.nix { };
+
+
limesdr = callPackage ../development/gnuradio-modules/limesdr/default.nix { };
+
+
})