diff --git a/nixos/doc/manual/release-notes/rl-2105.xml b/nixos/doc/manual/release-notes/rl-2105.xml
index 678894a521d..218bb3ae309 100644
--- a/nixos/doc/manual/release-notes/rl-2105.xml
+++ b/nixos/doc/manual/release-notes/rl-2105.xml
@@ -36,7 +36,17 @@
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
- (#7547).
+ (#75478).
+
+
+
+
+ GNURadio has a
+ pkgs
attribute set, and there's a gnuradio.callPackage
+ function that extends pkgs
with a mkDerivation
, and a
+ mkDerivationWith
, like Qt5. Now all gnuradio.pkgs
are
+ defined with gnuradio.callPackage
and some packages that depend
+ on gnuradio are defined with this as well.
@@ -57,6 +67,13 @@
for the motivation).
+
+
+ Kodi has been updated to version 19.0 "Matrix". See
+ the announcement for
+ further details.
+
+
@@ -577,6 +594,37 @@ self: super:
for your Kafka version.
+
+
+ The kodi package has been modified to allow concise addon management. Consider
+ the following configuration from previous releases of NixOS to install kodi,
+ including the kodiPackages.inputstream-adaptive and kodiPackages.vfs-sftp
+ addons:
+
+
+environment.systemPackages = [
+ pkgs.kodi
+];
+
+nixpkgs.config.kodi = {
+ enableInputStreamAdaptive = true;
+ enableVFSSFTP = true;
+};
+
+
+ All Kodi config flags have been removed, and as a result the above configuration
+ should now be written as:
+
+
+environment.systemPackages = [
+ (pkgs.kodi.withPackages (p: with p; [
+ inputstream-adaptive
+ vfs-sftp
+ ]))
+];
+
+
+
diff --git a/nixos/modules/services/misc/mautrix-telegram.nix b/nixos/modules/services/misc/mautrix-telegram.nix
index caeb4b04164..0ae5797fea0 100644
--- a/nixos/modules/services/misc/mautrix-telegram.nix
+++ b/nixos/modules/services/misc/mautrix-telegram.nix
@@ -6,8 +6,9 @@ let
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 = {
@@ -15,9 +16,8 @@ in {
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";
@@ -124,6 +124,16 @@ in {
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 \
@@ -159,6 +169,8 @@ in {
--config='${settingsFile}'
'';
};
+
+ restartTriggers = [ settingsFileUnsubstituted ];
};
};
diff --git a/nixos/modules/services/monitoring/prometheus/exporters.nix b/nixos/modules/services/monitoring/prometheus/exporters.nix
index 115ecbf12b5..5811cda1125 100644
--- a/nixos/modules/services/monitoring/prometheus/exporters.nix
+++ b/nixos/modules/services/monitoring/prometheus/exporters.nix
@@ -31,6 +31,7 @@ let
"dovecot"
"fritzbox"
"json"
+ "jitsi"
"keylight"
"knot"
"lnd"
@@ -130,7 +131,7 @@ let
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 = {};
diff --git a/nixos/modules/services/monitoring/prometheus/exporters/jitsi.nix b/nixos/modules/services/monitoring/prometheus/exporters/jitsi.nix
new file mode 100644
index 00000000000..c93a8f98e55
--- /dev/null
+++ b/nixos/modules/services/monitoring/prometheus/exporters/jitsi.nix
@@ -0,0 +1,40 @@
+{ 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}
+ '';
+ };
+ };
+}
diff --git a/nixos/tests/prometheus-exporters.nix b/nixos/tests/prometheus-exporters.nix
index 78a3afad0ba..290cb87abbe 100644
--- a/nixos/tests/prometheus-exporters.nix
+++ b/nixos/tests/prometheus-exporters.nix
@@ -233,6 +233,29 @@ let
'';
};
+ 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;
diff --git a/pkgs/applications/audio/rosegarden/default.nix b/pkgs/applications/audio/rosegarden/default.nix
index 5c7493ef7db..b95e5fdc76d 100644
--- a/pkgs/applications/audio/rosegarden/default.nix
+++ b/pkgs/applications/audio/rosegarden/default.nix
@@ -3,12 +3,12 @@
, 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 = ''
diff --git a/pkgs/applications/display-managers/lightdm-mini-greeter/default.nix b/pkgs/applications/display-managers/lightdm-mini-greeter/default.nix
index 0005fdb6339..72f38679870 100644
--- a/pkgs/applications/display-managers/lightdm-mini-greeter/default.nix
+++ b/pkgs/applications/display-managers/lightdm-mini-greeter/default.nix
@@ -2,13 +2,13 @@
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 ];
diff --git a/pkgs/applications/graphics/photoflare/default.nix b/pkgs/applications/graphics/photoflare/default.nix
index 0c25364b76a..303f5170d8e 100644
--- a/pkgs/applications/graphics/photoflare/default.nix
+++ b/pkgs/applications/graphics/photoflare/default.nix
@@ -19,13 +19,11 @@ mkDerivation rec {
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;
};
}
diff --git a/pkgs/applications/misc/pueue/default.nix b/pkgs/applications/misc/pueue/default.nix
index dd46c566cd8..cc1ae14350e 100644
--- a/pkgs/applications/misc/pueue/default.nix
+++ b/pkgs/applications/misc/pueue/default.nix
@@ -1,20 +1,22 @@
-{ 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" ];
postInstall = ''
@@ -27,6 +29,7 @@ rustPlatform.buildRustPackage rec {
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 ];
};
diff --git a/pkgs/applications/networking/browsers/asuka/default.nix b/pkgs/applications/networking/browsers/asuka/default.nix
index 98c8a8afae0..6702fdaf7a9 100644
--- a/pkgs/applications/networking/browsers/asuka/default.nix
+++ b/pkgs/applications/networking/browsers/asuka/default.nix
@@ -1,12 +1,14 @@
-{ 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";
diff --git a/pkgs/applications/networking/cluster/terragrunt/default.nix b/pkgs/applications/networking/cluster/terragrunt/default.nix
index 61910895927..6cb13a01eee 100644
--- a/pkgs/applications/networking/cluster/terragrunt/default.nix
+++ b/pkgs/applications/networking/cluster/terragrunt/default.nix
@@ -2,16 +2,16 @@
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;
diff --git a/pkgs/applications/networking/mailreaders/aerc/default.nix b/pkgs/applications/networking/mailreaders/aerc/default.nix
index 3124239b0d9..09ce39027b5 100644
--- a/pkgs/applications/networking/mailreaders/aerc/default.nix
+++ b/pkgs/applications/networking/mailreaders/aerc/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildGoModule, fetchurl
+{ lib, buildGoModule, fetchFromSourcehut
, ncurses, notmuch, scdoc
, python3, w3m, dante
}:
@@ -7,9 +7,11 @@ buildGoModule rec {
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;
diff --git a/pkgs/applications/radio/gnss-sdr/default.nix b/pkgs/applications/radio/gnss-sdr/default.nix
index f48a21db75e..46757601867 100644
--- a/pkgs/applications/radio/gnss-sdr/default.nix
+++ b/pkgs/applications/radio/gnss-sdr/default.nix
@@ -1,15 +1,16 @@
-{ 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
@@ -18,7 +19,7 @@
, protobuf
}:
-stdenv.mkDerivation rec {
+gnuradio3_8.pkgs.mkDerivation rec {
pname = "gnss-sdr";
version = "0.0.13";
@@ -29,27 +30,32 @@ stdenv.mkDerivation rec {
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 = [
diff --git a/pkgs/applications/radio/gnuradio/3.7.nix b/pkgs/applications/radio/gnuradio/3.7.nix
index a48efb9aa6d..50993dd6f8e 100644
--- a/pkgs/applications/radio/gnuradio/3.7.nix
+++ b/pkgs/applications/radio/gnuradio/3.7.nix
@@ -5,6 +5,7 @@
# Remove gcc and python references
, removeReferencesTo
, pkg-config
+, volk
, cppunit
, swig
, orc
@@ -43,11 +44,12 @@
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 = {
@@ -61,6 +63,9 @@ let
};
volk = {
cmakeEnableFlag = "VOLK";
+ runtime = [
+ volk
+ ];
};
doxygen = {
native = [ doxygen ];
@@ -213,19 +218,29 @@ let
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
@@ -236,6 +251,9 @@ let
"-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
# gr-fcd feature was dropped in 3.8
@@ -250,15 +268,6 @@ let
+ 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.
@@ -272,24 +281,4 @@ let
sha256 = "2Pitgu8accs16B5X5+/q51hr+IY9DMsA15f56gAtBs8=";
})
];
-in
-
-stdenv.mkDerivation rec {
- inherit
- pname
- version
- src
- nativeBuildInputs
- buildInputs
- cmakeFlags
- preConfigure
- # disallowedReferences
- stripDebugList
- patches
- postInstall
- passthru
- doCheck
- dontWrapPythonPrograms
- meta
- ;
}
diff --git a/pkgs/applications/radio/gnuradio/3.8.nix b/pkgs/applications/radio/gnuradio/3.8.nix
new file mode 100644
index 00000000000..799b429800d
--- /dev/null
+++ b/pkgs/applications/radio/gnuradio/3.8.nix
@@ -0,0 +1,284 @@
+{ 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";
+ })
+ ];
+}
diff --git a/pkgs/applications/radio/gnuradio/ais.nix b/pkgs/applications/radio/gnuradio/ais.nix
deleted file mode 100644
index 8d6e8509772..00000000000
--- a/pkgs/applications/radio/gnuradio/ais.nix
+++ /dev/null
@@ -1,53 +0,0 @@
-{ 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 ];
- };
-}
diff --git a/pkgs/applications/radio/gnuradio/default.nix b/pkgs/applications/radio/gnuradio/default.nix
index 9bc1511968b..bcb2560144a 100644
--- a/pkgs/applications/radio/gnuradio/default.nix
+++ b/pkgs/applications/radio/gnuradio/default.nix
@@ -5,8 +5,8 @@
# Remove gcc and python references
, removeReferencesTo
, pkg-config
+, volk
, cppunit
-, swig
, orc
, boost
, log4cpp
@@ -22,8 +22,13 @@
, uhd
, SDL
, gsl
+, libsodium
+, libsndfile
+, libunwind
, cppzmq
, zeromq
+# Needed only if qt-gui is disabled, from some reason
+, icu
# GUI related
, gtk3
, pango
@@ -38,16 +43,15 @@
, 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 = {
@@ -57,32 +61,26 @@ let
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";
@@ -91,17 +89,23 @@ let
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
- cmakeEnableFlag = "GR_CTRLPORT";
- native = [
- swig
+ # https://github.com/gnuradio/gnuradio/blob/v3.9.0.0/gnuradio-runtime/lib/controlport/thrift/README
+ runtime = [
+ libunwind
];
+ cmakeEnableFlag = "GR_CTRLPORT";
};
gnuradio-companion = {
pythonRuntime = with python.pkgs; [
@@ -110,11 +114,15 @@ let
numpy
pygobject3
];
+ native = [
+ python.pkgs.pytest
+ ];
runtime = [
gtk3
pango
gobject-introspection
cairo
+ libsndfile
];
cmakeEnableFlag = "GRC";
};
@@ -160,7 +168,9 @@ let
cmakeEnableFlag = "GR_TRELLIS";
};
gr-uhd = {
- runtime = [ uhd ];
+ runtime = [
+ uhd
+ ];
cmakeEnableFlag = "GR_UHD";
};
gr-utils = {
@@ -173,22 +183,29 @@ let
];
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
@@ -207,84 +224,42 @@ let
qt = qt5;
gtk = gtk3;
});
- inherit (shared)
- version
- src
- hasFeature # function
- nativeBuildInputs
- buildInputs
- 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"
- ]
- ;
-
- 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
- ''
- ;
- 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
- ''
- ;
- 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=";
- })
- ];
+ inherit (shared) hasFeature; # function
in
stdenv.mkDerivation rec {
- inherit
- pname
+ inherit pname;
+ inherit (shared)
version
src
nativeBuildInputs
buildInputs
cmakeFlags
- preConfigure
- # disallowedReferences
+ disallowedReferences
stripDebugList
- patches
- postInstall
- passthru
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;
+ };
+
+ postInstall = shared.postInstall
+ # 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
+ ${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
+ ''
+ ;
}
diff --git a/pkgs/applications/radio/gnuradio/gsm.nix b/pkgs/applications/radio/gnuradio/gsm.nix
deleted file mode 100644
index 28c5045081b..00000000000
--- a/pkgs/applications/radio/gnuradio/gsm.nix
+++ /dev/null
@@ -1,37 +0,0 @@
-{ 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 ];
- };
-}
diff --git a/pkgs/applications/radio/gnuradio/limesdr.nix b/pkgs/applications/radio/gnuradio/limesdr.nix
deleted file mode 100644
index afe3de64527..00000000000
--- a/pkgs/applications/radio/gnuradio/limesdr.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{ 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 ];
- };
-}
diff --git a/pkgs/applications/radio/gnuradio/osmosdr.nix b/pkgs/applications/radio/gnuradio/osmosdr.nix
deleted file mode 100644
index 436c4309a5b..00000000000
--- a/pkgs/applications/radio/gnuradio/osmosdr.nix
+++ /dev/null
@@ -1,45 +0,0 @@
-{ 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 ];
- };
-}
diff --git a/pkgs/applications/radio/gnuradio/rds.nix b/pkgs/applications/radio/gnuradio/rds.nix
deleted file mode 100644
index 4f15f2a961e..00000000000
--- a/pkgs/applications/radio/gnuradio/rds.nix
+++ /dev/null
@@ -1,36 +0,0 @@
-{ 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 ];
- };
-}
diff --git a/pkgs/applications/radio/gnuradio/shared.nix b/pkgs/applications/radio/gnuradio/shared.nix
index 9b354d5b960..f8ea2f0b160 100644
--- a/pkgs/applications/radio/gnuradio/shared.nix
+++ b/pkgs/applications/radio/gnuradio/shared.nix
@@ -85,9 +85,6 @@ rec {
;
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)
''
@@ -103,9 +100,11 @@ rec {
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;
diff --git a/pkgs/applications/radio/gnuradio/wrapper.nix b/pkgs/applications/radio/gnuradio/wrapper.nix
index aaf74abc2c5..d255b199bc9 100644
--- a/pkgs/applications/radio/gnuradio/wrapper.nix
+++ b/pkgs/applications/radio/gnuradio/wrapper.nix
@@ -1,9 +1,16 @@
{ 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
@@ -37,12 +44,16 @@ let
[]
)
) 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 " " ([
@@ -88,48 +99,84 @@ let
(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;
};
-
- 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;
-}
+ passthru = unwrapped.passthru // {
+ inherit
+ pythonEnv
+ pythonPkgs
+ unwrapped
+ ;
+ pkgs = packages;
+ };
+ 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
diff --git a/pkgs/applications/radio/gqrx/default.nix b/pkgs/applications/radio/gqrx/default.nix
index 217818f67c2..cccdff1f3cc 100644
--- a/pkgs/applications/radio/gqrx/default.nix
+++ b/pkgs/applications/radio/gqrx/default.nix
@@ -1,13 +1,23 @@
-{ 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";
@@ -18,9 +28,23 @@ mkDerivation rec {
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 = ''
diff --git a/pkgs/applications/radio/inspectrum/default.nix b/pkgs/applications/radio/inspectrum/default.nix
index 37131a686b5..9d61ab4b601 100644
--- a/pkgs/applications/radio/inspectrum/default.nix
+++ b/pkgs/applications/radio/inspectrum/default.nix
@@ -1,17 +1,14 @@
{ 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";
@@ -22,13 +19,15 @@ mkDerivation rec {
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; {
diff --git a/pkgs/applications/radio/qradiolink/default.nix b/pkgs/applications/radio/qradiolink/default.nix
index 24c5f987f17..2dbd9f1aba9 100644
--- a/pkgs/applications/radio/qradiolink/default.nix
+++ b/pkgs/applications/radio/qradiolink/default.nix
@@ -1,51 +1,71 @@
-{ lib, stdenv, fetchFromGitHub, alsaLib, boost
-, qt4, libpulseaudio, codec2, libconfig
-, gnuradio, gr-osmosdr, gsm
-, libopus, libjpeg, protobuf, qwt, speex
-} :
+{ 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
+}:
-let
- version = "0.5.0";
-
-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
- protobuf
speex
- qwt
+ speexdsp
+ gnuradio3_8.qt.qtbase
+ gnuradio3_8.qt.qtmultimedia
+ libftdi
+ libsndfile
+ gnuradio3_8.qwt
+ ];
+ nativeBuildInputs = [
+ protobuf
+ gnuradio3_8.qt.qmake
+ gnuradio3_8.qt.wrapQtAppsHook
];
enableParallelBuilding = true;
diff --git a/pkgs/applications/radio/uhd/3.5.nix b/pkgs/applications/radio/uhd/3.5.nix
new file mode 100644
index 00000000000..d913927a7b9
--- /dev/null
+++ b/pkgs/applications/radio/uhd/3.5.nix
@@ -0,0 +1,159 @@
+{ 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::iterator {aka __gnu_cxx::__normal_iterator >}' 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 ];
+ };
+}
diff --git a/pkgs/applications/radio/uhd/default.nix b/pkgs/applications/radio/uhd/default.nix
index bafb2f637df..9f2f39aab2c 100644
--- a/pkgs/applications/radio/uhd/default.nix
+++ b/pkgs/applications/radio/uhd/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
, fetchurl
, fetchFromGitHub
, cmake
@@ -8,14 +9,14 @@
, 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
@@ -40,18 +41,18 @@ 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";
+ 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 = [
diff --git a/pkgs/applications/video/kodi/default.nix b/pkgs/applications/video/kodi/default.nix
index 0dca33303c5..55ba84cc454 100644
--- a/pkgs/applications/video/kodi/default.nix
+++ b/pkgs/applications/video/kodi/default.nix
@@ -1,250 +1,14 @@
-{ 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";
+ 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);
+ };
};
- 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;
- };
-
- meta = with lib; {
- description = "Media center";
- homepage = "https://kodi.tv/";
- license = licenses.gpl2;
- platforms = platforms.linux;
- maintainers = with maintainers; [ titanous edwtjo peterhoeg sephalon ];
- };
-}
+ })
diff --git a/pkgs/applications/video/kodi/plugins.nix b/pkgs/applications/video/kodi/packages.nix
similarity index 80%
rename from pkgs/applications/video/kodi/plugins.nix
rename to pkgs/applications/video/kodi/packages.nix
index 3aea028e9f0..8e0ecbf9b9b 100644
--- a/pkgs/applications/video/kodi/plugins.nix
+++ b/pkgs/applications/video/kodi/packages.nix
@@ -1,5 +1,5 @@
{ 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 }:
@@ -8,32 +8,27 @@ with lib;
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";
@@ -48,36 +43,45 @@ let self = rec {
};
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;
@@ -86,25 +90,25 @@ let self = rec {
"-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";
};
@@ -127,9 +131,9 @@ let self = rec {
};
- 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";
@@ -175,8 +179,8 @@ let self = rec {
};
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;
@@ -209,23 +213,22 @@ let self = rec {
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";
@@ -243,8 +246,8 @@ let self = rec {
extraBuildInputs = [ tinyxml udev ];
};
- simpleplugin = mkKodiPlugin rec {
- plugin = "simpleplugin";
+ simpleplugin = buildKodiAddon rec {
+ pname = "simpleplugin";
namespace = "script.module.simpleplugin";
version = "2.3.2";
@@ -263,16 +266,16 @@ let self = rec {
};
};
- 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";
};
@@ -292,10 +295,10 @@ let self = rec {
};
- steam-controller = mkKodiABIPlugin rec {
+ steam-controller = buildKodiBinaryAddon rec {
+ pname = namespace;
namespace = "peripheral.steamcontroller";
version = "0.11.0";
- plugin = namespace;
src = fetchFromGitHub {
owner = "kodi-game";
@@ -314,9 +317,9 @@ let self = rec {
};
- steam-launcher = mkKodiPlugin {
+ steam-launcher = buildKodiAddon {
- plugin = "steam-launcher";
+ pname = "steam-launcher";
namespace = "script.steam.launcher";
version = "3.5.1";
@@ -343,8 +346,8 @@ let self = rec {
};
};
- pdfreader = mkKodiPlugin rec {
- plugin = "pdfreader";
+ pdfreader = buildKodiAddon rec {
+ pname = "pdfreader";
namespace = "plugin.image.pdf";
version = "2.0.2";
@@ -362,9 +365,9 @@ let self = rec {
};
};
- pvr-hts = mkKodiABIPlugin rec {
+ pvr-hts = buildKodiBinaryAddon rec {
- plugin = "pvr-hts";
+ pname = "pvr-hts";
namespace = "pvr.hts";
version = "8.2.2";
@@ -384,9 +387,9 @@ let self = rec {
};
- pvr-hdhomerun = mkKodiABIPlugin rec {
+ pvr-hdhomerun = buildKodiBinaryAddon rec {
- plugin = "pvr-hdhomerun";
+ pname = "pvr-hdhomerun";
namespace = "pvr.hdhomerun";
version = "7.1.0";
@@ -408,9 +411,9 @@ let self = rec {
};
- pvr-iptvsimple = mkKodiABIPlugin rec {
+ pvr-iptvsimple = buildKodiBinaryAddon rec {
- plugin = "pvr-iptvsimple";
+ pname = "pvr-iptvsimple";
namespace = "pvr.iptvsimple";
version = "7.4.2";
@@ -432,9 +435,9 @@ let self = rec {
extraBuildInputs = [ zlib pugixml ];
};
- osmc-skin = mkKodiPlugin rec {
+ osmc-skin = buildKodiAddon rec {
- plugin = "osmc-skin";
+ pname = "osmc-skin";
namespace = "skin.osmc";
version = "18.0.0";
@@ -454,8 +457,8 @@ let self = rec {
};
};
- yatp = python3Packages.toPythonModule (mkKodiPlugin rec {
- plugin = "yatp";
+ yatp = python3Packages.toPythonModule (buildKodiAddon rec {
+ pname = "yatp";
namespace = "plugin.video.yatp";
version = "3.3.2";
@@ -482,9 +485,9 @@ let self = rec {
};
});
- inputstream-adaptive = mkKodiABIPlugin rec {
+ inputstream-adaptive = buildKodiBinaryAddon rec {
- plugin = "inputstream-adaptive";
+ pname = "inputstream-adaptive";
namespace = "inputstream.adaptive";
version = "2.6.7";
@@ -500,7 +503,7 @@ let self = rec {
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 = {
@@ -511,10 +514,10 @@ let self = rec {
};
};
- vfs-sftp = mkKodiABIPlugin rec {
+ vfs-sftp = buildKodiBinaryAddon rec {
+ pname = namespace;
namespace = "vfs.sftp";
version = "2.0.0";
- plugin = namespace;
src = fetchFromGitHub {
owner = "xbmc";
@@ -533,10 +536,10 @@ let self = rec {
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";
diff --git a/pkgs/applications/video/kodi/unwrapped.nix b/pkgs/applications/video/kodi/unwrapped.nix
new file mode 100644
index 00000000000..2a713324c3f
--- /dev/null
+++ b/pkgs/applications/video/kodi/unwrapped.nix
@@ -0,0 +1,242 @@
+{ 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 ];
+ };
+}
diff --git a/pkgs/applications/video/kodi/wrapper.nix b/pkgs/applications/video/kodi/wrapper.nix
index 80a36df3de7..2b4abbb500a 100644
--- a/pkgs/applications/video/kodi/wrapper.nix
+++ b/pkgs/applications/video/kodi/wrapper.nix
@@ -1,11 +1,9 @@
-{ 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 ];
@@ -15,16 +13,11 @@ in buildEnv {
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})";
- };
}
diff --git a/pkgs/data/fonts/twitter-color-emoji/default.nix b/pkgs/data/fonts/twitter-color-emoji/default.nix
index e74e51a95dc..6cceee558a9 100644
--- a/pkgs/data/fonts/twitter-color-emoji/default.nix
+++ b/pkgs/data/fonts/twitter-color-emoji/default.nix
@@ -14,14 +14,14 @@
}:
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 =
diff --git a/pkgs/development/gnuradio-modules/ais/default.nix b/pkgs/development/gnuradio-modules/ais/default.nix
new file mode 100644
index 00000000000..0770d83f21d
--- /dev/null
+++ b/pkgs/development/gnuradio-modules/ais/default.nix
@@ -0,0 +1,45 @@
+{ 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 ];
+ };
+}
diff --git a/pkgs/development/gnuradio-modules/gsm/default.nix b/pkgs/development/gnuradio-modules/gsm/default.nix
new file mode 100644
index 00000000000..835c5456668
--- /dev/null
+++ b/pkgs/development/gnuradio-modules/gsm/default.nix
@@ -0,0 +1,48 @@
+{ 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 ];
+ };
+}
diff --git a/pkgs/development/gnuradio-modules/limesdr/default.nix b/pkgs/development/gnuradio-modules/limesdr/default.nix
new file mode 100644
index 00000000000..c10ab9df391
--- /dev/null
+++ b/pkgs/development/gnuradio-modules/limesdr/default.nix
@@ -0,0 +1,61 @@
+{ 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 ];
+ };
+}
diff --git a/pkgs/development/gnuradio-modules/mkDerivation.nix b/pkgs/development/gnuradio-modules/mkDerivation.nix
new file mode 100644
index 00000000000..014968f82cc
--- /dev/null
+++ b/pkgs/development/gnuradio-modules/mkDerivation.nix
@@ -0,0 +1,25 @@
+{ 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_)
diff --git a/pkgs/applications/radio/gnuradio/nacl.nix b/pkgs/development/gnuradio-modules/nacl/default.nix
similarity index 50%
rename from pkgs/applications/radio/gnuradio/nacl.nix
rename to pkgs/development/gnuradio-modules/nacl/default.nix
index f6c21e79454..1ffb0afee07 100644
--- a/pkgs/applications/radio/gnuradio/nacl.nix
+++ b/pkgs/development/gnuradio-modules/nacl/default.nix
@@ -1,31 +1,40 @@
-{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, boost, gnuradio, uhd
-, makeWrapper, libsodium, cppunit, log4cpp
-, pythonSupport ? true, python, swig
+{ lib
+, mkDerivation
+, fetchFromGitHub
+, cmake
+, pkg-config
+, cppunit
+, swig
+, boost
+, log4cpp
+, python
+, libsodium
}:
-assert pythonSupport -> python != null && swig != null;
-
-stdenv.mkDerivation {
+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
+ ];
- 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
- '';
+ cppunit
+ log4cpp
+ boost
+ libsodium
+ ];
meta = with lib; {
description = "Gnuradio block for encryption";
diff --git a/pkgs/development/gnuradio-modules/osmosdr/default.nix b/pkgs/development/gnuradio-modules/osmosdr/default.nix
new file mode 100644
index 00000000000..0e1cf244c8f
--- /dev/null
+++ b/pkgs/development/gnuradio-modules/osmosdr/default.nix
@@ -0,0 +1,86 @@
+{ 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;
+ };
+}
diff --git a/pkgs/development/gnuradio-modules/rds/default.nix b/pkgs/development/gnuradio-modules/rds/default.nix
new file mode 100644
index 00000000000..c068d6af810
--- /dev/null
+++ b/pkgs/development/gnuradio-modules/rds/default.nix
@@ -0,0 +1,59 @@
+{ 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 ];
+ };
+}
diff --git a/pkgs/development/libraries/iniparser/default.nix b/pkgs/development/libraries/iniparser/default.nix
index 8c7fdfd04d6..62deaeb1c28 100644
--- a/pkgs/development/libraries/iniparser/default.nix
+++ b/pkgs/development/libraries/iniparser/default.nix
@@ -36,6 +36,9 @@ stdenv.mkDerivation rec {
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; {
diff --git a/pkgs/development/libraries/iniparser/iniparser.pc.in b/pkgs/development/libraries/iniparser/iniparser.pc.in
new file mode 100644
index 00000000000..fb94188fff7
--- /dev/null
+++ b/pkgs/development/libraries/iniparser/iniparser.pc.in
@@ -0,0 +1,12 @@
+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}
diff --git a/pkgs/development/libraries/libdigidocpp/default.nix b/pkgs/development/libraries/libdigidocpp/default.nix
index f7170fa7f10..5b2914c141f 100644
--- a/pkgs/development/libraries/libdigidocpp/default.nix
+++ b/pkgs/development/libraries/libdigidocpp/default.nix
@@ -2,12 +2,12 @@
, 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 ];
diff --git a/pkgs/development/libraries/libhandy/default.nix b/pkgs/development/libraries/libhandy/default.nix
index 43092f71c57..4532edfd884 100644
--- a/pkgs/development/libraries/libhandy/default.nix
+++ b/pkgs/development/libraries/libhandy/default.nix
@@ -22,14 +22,14 @@
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 = [
diff --git a/pkgs/development/libraries/libisoburn/default.nix b/pkgs/development/libraries/libisoburn/default.nix
index 1e2ae41f3f2..44367aad1f9 100644
--- a/pkgs/development/libraries/libisoburn/default.nix
+++ b/pkgs/development/libraries/libisoburn/default.nix
@@ -2,11 +2,11 @@
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 ];
diff --git a/pkgs/development/libraries/liblinear/default.nix b/pkgs/development/libraries/liblinear/default.nix
index caf03696013..aa2dcd648b8 100644
--- a/pkgs/development/libraries/liblinear/default.nix
+++ b/pkgs/development/libraries/liblinear/default.nix
@@ -4,13 +4,13 @@ let
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 = ''
diff --git a/pkgs/development/libraries/libofx/default.nix b/pkgs/development/libraries/libofx/default.nix
index f46a2039464..dc40086ad0a 100644
--- a/pkgs/development/libraries/libofx/default.nix
+++ b/pkgs/development/libraries/libofx/default.nix
@@ -3,13 +3,13 @@
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";
diff --git a/pkgs/development/libraries/oneDNN/default.nix b/pkgs/development/libraries/oneDNN/default.nix
index c87fc4fca79..c7b8339e710 100644
--- a/pkgs/development/libraries/oneDNN/default.nix
+++ b/pkgs/development/libraries/oneDNN/default.nix
@@ -5,13 +5,13 @@
# 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" ];
diff --git a/pkgs/development/libraries/volk/default.nix b/pkgs/development/libraries/volk/default.nix
new file mode 100644
index 00000000000..574a90d2272
--- /dev/null
+++ b/pkgs/development/libraries/volk/default.nix
@@ -0,0 +1,51 @@
+{ 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;
+ };
+}
diff --git a/pkgs/development/python-modules/Rtree/default.nix b/pkgs/development/python-modules/Rtree/default.nix
index b5996a13d98..eb4dae8e3aa 100644
--- a/pkgs/development/python-modules/Rtree/default.nix
+++ b/pkgs/development/python-modules/Rtree/default.nix
@@ -1,4 +1,11 @@
-{ lib, stdenv, buildPythonPackage, fetchPypi, libspatialindex, numpy }:
+{ lib,
+ stdenv,
+ buildPythonPackage,
+ fetchPypi,
+ libspatialindex,
+ numpy,
+ pytestCheckHook
+}:
buildPythonPackage rec {
pname = "Rtree";
@@ -9,21 +16,23 @@ buildPythonPackage rec {
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 ];
};
}
diff --git a/pkgs/development/python-modules/convertdate/default.nix b/pkgs/development/python-modules/convertdate/default.nix
index 0dee95541b0..5c232f66ace 100644
--- a/pkgs/development/python-modules/convertdate/default.nix
+++ b/pkgs/development/python-modules/convertdate/default.nix
@@ -9,7 +9,7 @@
buildPythonPackage rec {
pname = "convertdate";
- version = "2.3.0";
+ version = "2.3.1";
disabled = isPy27;
@@ -17,8 +17,8 @@ buildPythonPackage rec {
src = fetchFromGitHub {
owner = "fitnr";
repo = pname;
- rev = "v${version}";
- sha256 = "17j188zlp46zmq8qyy4z4f9v25l3zibkwzj8wp4fxqgimjnfj2nr";
+ rev = version;
+ sha256 = "1g8sgd3xc9viy0kb1i4xp6bdn1hzwhrnk8kmismla88scivrhq32";
};
propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/cryptography/default.nix b/pkgs/development/python-modules/cryptography/default.nix
index 1038431d31c..32624e54c40 100644
--- a/pkgs/development/python-modules/cryptography/default.nix
+++ b/pkgs/development/python-modules/cryptography/default.nix
@@ -42,6 +42,7 @@ buildPythonPackage rec {
nativeBuildInputs = lib.optionals (!isPyPy) [
cffi
+ ] ++ [
rustPlatform.cargoSetupHook
setuptools-rust
] ++ (with rustPlatform; [ rust.cargo rust.rustc ]);
diff --git a/pkgs/development/tools/analysis/tfsec/default.nix b/pkgs/development/tools/analysis/tfsec/default.nix
index f5450be16b0..09a77d0f935 100644
--- a/pkgs/development/tools/analysis/tfsec/default.nix
+++ b/pkgs/development/tools/analysis/tfsec/default.nix
@@ -2,13 +2,13 @@
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";
diff --git a/pkgs/development/tools/misc/terraform-ls/default.nix b/pkgs/development/tools/misc/terraform-ls/default.nix
index eb823904eed..54adb5f8296 100644
--- a/pkgs/development/tools/misc/terraform-ls/default.nix
+++ b/pkgs/development/tools/misc/terraform-ls/default.nix
@@ -2,15 +2,15 @@
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;
diff --git a/pkgs/servers/minio/default.nix b/pkgs/servers/minio/default.nix
index 0758a863fce..a2ffe32acd2 100644
--- a/pkgs/servers/minio/default.nix
+++ b/pkgs/servers/minio/default.nix
@@ -2,16 +2,16 @@
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;
diff --git a/pkgs/servers/monitoring/loki/default.nix b/pkgs/servers/monitoring/loki/default.nix
index 370006a591e..d6e79831329 100644
--- a/pkgs/servers/monitoring/loki/default.nix
+++ b/pkgs/servers/monitoring/loki/default.nix
@@ -2,14 +2,14 @@
}:
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;
diff --git a/pkgs/servers/monitoring/prometheus/jitsi-exporter.nix b/pkgs/servers/monitoring/prometheus/jitsi-exporter.nix
new file mode 100644
index 00000000000..b68b1681919
--- /dev/null
+++ b/pkgs/servers/monitoring/prometheus/jitsi-exporter.nix
@@ -0,0 +1,23 @@
+{ 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 ];
+ };
+}
diff --git a/pkgs/servers/rtsp-simple-server/default.nix b/pkgs/servers/rtsp-simple-server/default.nix
index 1cb5e37cb94..cf96edfe963 100644
--- a/pkgs/servers/rtsp-simple-server/default.nix
+++ b/pkgs/servers/rtsp-simple-server/default.nix
@@ -5,16 +5,16 @@
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;
diff --git a/pkgs/tools/admin/clair/default.nix b/pkgs/tools/admin/clair/default.nix
index 9460144998e..1ab4795dd62 100644
--- a/pkgs/tools/admin/clair/default.nix
+++ b/pkgs/tools/admin/clair/default.nix
@@ -2,16 +2,16 @@
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;
diff --git a/pkgs/tools/filesystems/reiser4progs/default.nix b/pkgs/tools/filesystems/reiser4progs/default.nix
index 46c0120f64c..961a286729a 100644
--- a/pkgs/tools/filesystems/reiser4progs/default.nix
+++ b/pkgs/tools/filesystems/reiser4progs/default.nix
@@ -1,13 +1,13 @@
{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];
diff --git a/pkgs/tools/graphics/resvg/default.nix b/pkgs/tools/graphics/resvg/default.nix
index 8c8164a7e8e..e0968dd6271 100644
--- a/pkgs/tools/graphics/resvg/default.nix
+++ b/pkgs/tools/graphics/resvg/default.nix
@@ -1,23 +1,26 @@
-{ 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 ];
};
diff --git a/pkgs/tools/inputmethods/ibus-engines/ibus-anthy/default.nix b/pkgs/tools/inputmethods/ibus-engines/ibus-anthy/default.nix
index 60b5d6778b4..d04de7bafeb 100644
--- a/pkgs/tools/inputmethods/ibus-engines/ibus-anthy/default.nix
+++ b/pkgs/tools/inputmethods/ibus-engines/ibus-anthy/default.nix
@@ -13,11 +13,11 @@
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 = [
diff --git a/pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix b/pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix
index 00a499fb104..ac29545db3b 100644
--- a/pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix
+++ b/pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix
@@ -5,13 +5,13 @@
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 = ''
diff --git a/pkgs/tools/misc/direnv/default.nix b/pkgs/tools/misc/direnv/default.nix
index ee068450344..5fa6b8db60e 100644
--- a/pkgs/tools/misc/direnv/default.nix
+++ b/pkgs/tools/misc/direnv/default.nix
@@ -2,16 +2,16 @@
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 =
diff --git a/pkgs/tools/networking/minio-client/default.nix b/pkgs/tools/networking/minio-client/default.nix
index bdec1b2b4ac..1b2b0f2deb3 100644
--- a/pkgs/tools/networking/minio-client/default.nix
+++ b/pkgs/tools/networking/minio-client/default.nix
@@ -2,13 +2,13 @@
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=";
diff --git a/pkgs/tools/package-management/emplace/default.nix b/pkgs/tools/package-management/emplace/default.nix
index 798601d1a5b..5a8ca2d9a8a 100644
--- a/pkgs/tools/package-management/emplace/default.nix
+++ b/pkgs/tools/package-management/emplace/default.nix
@@ -2,16 +2,16 @@
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";
diff --git a/pkgs/tools/security/age/default.nix b/pkgs/tools/security/age/default.nix
index 74a2bb7a620..e15618da3f1 100644
--- a/pkgs/tools/security/age/default.nix
+++ b/pkgs/tools/security/age/default.nix
@@ -2,14 +2,14 @@
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; {
diff --git a/pkgs/tools/security/teler/default.nix b/pkgs/tools/security/teler/default.nix
index e2a895f0747..f44b7abf523 100644
--- a/pkgs/tools/security/teler/default.nix
+++ b/pkgs/tools/security/teler/default.nix
@@ -5,16 +5,16 @@
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;
diff --git a/pkgs/tools/security/terrascan/default.nix b/pkgs/tools/security/terrascan/default.nix
index ab4a7197647..0d7c3d2863c 100644
--- a/pkgs/tools/security/terrascan/default.nix
+++ b/pkgs/tools/security/terrascan/default.nix
@@ -5,16 +5,16 @@
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;
diff --git a/pkgs/tools/typesetting/scdoc/default.nix b/pkgs/tools/typesetting/scdoc/default.nix
index 1b22b781d54..1e6c86c1992 100644
--- a/pkgs/tools/typesetting/scdoc/default.nix
+++ b/pkgs/tools/typesetting/scdoc/default.nix
@@ -1,12 +1,14 @@
-{ 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 = ''
diff --git a/pkgs/tools/wayland/wev/default.nix b/pkgs/tools/wayland/wev/default.nix
index 83e4113f7ea..69288a1bc8c 100644
--- a/pkgs/tools/wayland/wev/default.nix
+++ b/pkgs/tools/wayland/wev/default.nix
@@ -1,6 +1,6 @@
{ lib
, stdenv
-, fetchurl
+, fetchFromSourcehut
, pkg-config
, scdoc
, wayland
@@ -12,9 +12,11 @@ stdenv.mkDerivation rec {
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 ];
diff --git a/pkgs/tools/wayland/wlsunset/default.nix b/pkgs/tools/wayland/wlsunset/default.nix
index 692ddd37cf3..931f394d689 100644
--- a/pkgs/tools/wayland/wlsunset/default.nix
+++ b/pkgs/tools/wayland/wlsunset/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, meson, pkg-config, ninja, wayland
+{ lib, stdenv, fetchFromSourcehut, meson, pkg-config, ninja, wayland
, wayland-protocols
}:
@@ -6,9 +6,11 @@ stdenv.mkDerivation rec {
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 ];
diff --git a/pkgs/tools/wayland/wshowkeys/default.nix b/pkgs/tools/wayland/wshowkeys/default.nix
index 1c095ca297a..5f0025d6072 100644
--- a/pkgs/tools/wayland/wshowkeys/default.nix
+++ b/pkgs/tools/wayland/wshowkeys/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl
+{ lib, stdenv, fetchFromSourcehut
, meson, pkg-config, wayland, ninja
, cairo, libinput, pango, wayland-protocols, libxkbcommon
}:
@@ -10,9 +10,11 @@ in stdenv.mkDerivation rec {
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 ];
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index fb824ccccaa..47cd223ef56 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -240,16 +240,24 @@ mapAliases ({
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
@@ -302,6 +310,9 @@ mapAliases ({
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
@@ -780,7 +791,8 @@ mapAliases ({
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";
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 85dae533046..d969d85bb33 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -2780,7 +2780,9 @@ in
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 {};
@@ -3958,6 +3960,8 @@ in
volctl = callPackage ../tools/audio/volctl { };
+ volk = callPackage ../development/libraries/volk { };
+
vorta = libsForQt5.callPackage ../applications/backup/vorta { };
utahfs = callPackage ../applications/networking/utahfs { };
@@ -13150,7 +13154,10 @@ in
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 { };
@@ -16785,13 +16792,7 @@ in
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 { };
@@ -18607,6 +18608,7 @@ in
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 { };
@@ -22344,81 +22346,97 @@ in
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;
- };
- # 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;
+ gnuradio = callPackage ../applications/radio/gnuradio/wrapper.nix {
+ unwrapped = callPackage ../applications/radio/gnuradio {
+ inherit (darwin.apple_sdk.frameworks) CoreAudio;
+ python = python3;
+ boost = boost17x;
};
};
- gnuradio = callPackage ../applications/radio/gnuradio/wrapper.nix {
- unwrapped = gnuradio-unwrapped;
+ gnuradioPackages = lib.recurseIntoAttrs gnuradio.pkgs;
+ # A build without gui components and other utilites not needed for end user
+ # libraries
+ 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;
+ };
+ };
};
- gnuradio3_7-unwrapped = callPackage ../applications/radio/gnuradio/3.7.nix {
- inherit (darwin.apple_sdk.frameworks) CoreAudio;
- python = python2;
+ 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_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;
+ unwrapped = callPackage ../applications/radio/gnuradio/3.7.nix {
+ inherit (darwin.apple_sdk.frameworks) CoreAudio;
+ python = python2;
+ # Incompatible with uhd4+
+ uhd = uhd3_5;
+ };
+ };
+ 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;
+ };
+ };
};
grandorgue = callPackage ../applications/audio/grandorgue { };
- gr-nacl = callPackage ../applications/radio/gnuradio/nacl.nix {
- gnuradio = gnuradio3_7-unwrapped;
- };
-
- 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;
- };
-
- gr-osmosdr = callPackage ../applications/radio/gnuradio/osmosdr.nix {
- gnuradio = gnuradio3_7-unwrapped;
- };
-
goldendict = libsForQt5.callPackage ../applications/misc/goldendict {
inherit (darwin) libiconv;
};
@@ -22445,14 +22463,7 @@ in
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 { };
@@ -23300,9 +23311,7 @@ in
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;
@@ -26187,33 +26196,6 @@ in
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 {
@@ -26271,28 +26253,16 @@ in
gtk = gtk2;
};
- kodiPlain = callPackage ../applications/video/kodi { };
+ kodiPackages = recurseIntoAttrs (kodi.packages);
- kodiPlainWayland = callPackage ../applications/video/kodi {
- useWayland = true;
+ kodi = callPackage ../applications/video/kodi { };
+
+ kodi-wayland = callPackage ../applications/video/kodi {
+ waylandSupport = true;
};
- kodiGBM = callPackage ../applications/video/kodi {
- useGbm = true;
- };
-
- kodiPlugins = recurseIntoAttrs (callPackage ../applications/video/kodi/plugins.nix {});
-
- kodi = wrapKodi {
- kodi = kodiPlain;
- };
-
- kodi-wayland = wrapKodi {
- kodi = kodiPlainWayland;
- };
-
- kodi-gbm = wrapKodi {
- kodi = kodiGBM;
+ kodi-gbm = callPackage ../applications/video/kodi {
+ gbmSupport = true;
};
kodi-cli = callPackage ../tools/misc/kodi-cli { };
diff --git a/pkgs/top-level/gnuradio-packages.nix b/pkgs/top-level/gnuradio-packages.nix
new file mode 100644
index 00000000000..e5c2c8be313
--- /dev/null
+++ b/pkgs/top-level/gnuradio-packages.nix
@@ -0,0 +1,47 @@
+{ 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 { };
+
+})