Merge branch 'master' into staging-next

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

It does not look like unzip would be used but not investigating now to speed up merge conflict resolution.
This commit is contained in:
Jan Tojnar 2021-03-13 19:16:43 +01:00
commit 01a4d350c7
No known key found for this signature in database
GPG Key ID: 7FAB2A15F7A607A4
76 changed files with 1936 additions and 1039 deletions

View File

@ -36,7 +36,17 @@
now point to an externally wrapped by default derivations, that allow you to now point to an externally wrapped by default derivations, that allow you to
also add `extraPythonPackages` to the Python interpreter used by GNURadio. also add `extraPythonPackages` to the Python interpreter used by GNURadio.
Missing environmental variables needed for operational GUI were also added Missing environmental variables needed for operational GUI were also added
(<link xlink:href="https://github.com/NixOS/nixpkgs/issues/75478">#7547</link>). (<link xlink:href="https://github.com/NixOS/nixpkgs/issues/75478">#75478</link>).
</para>
</listitem>
<listitem>
<para>
<link xlink:href="https://www.gnuradio.org/">GNURadio</link> has a
<code>pkgs</code> attribute set, and there's a <code>gnuradio.callPackage</code>
function that extends <code>pkgs</code> with a <code>mkDerivation</code>, and a
<code>mkDerivationWith</code>, like Qt5. Now all <code>gnuradio.pkgs</code> are
defined with <code>gnuradio.callPackage</code> and some packages that depend
on gnuradio are defined with this as well.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
@ -57,6 +67,13 @@
for the motivation). for the motivation).
</para> </para>
</listitem> </listitem>
<listitem>
<para>
<link xlink:href="https://kodi.tv/">Kodi</link> has been updated to version 19.0 "Matrix". See
the <link xlink:href="https://kodi.tv/article/kodi-190-matrix-release">announcement</link> for
further details.
</para>
</listitem>
</itemizedlist> </itemizedlist>
</section> </section>
@ -577,6 +594,37 @@ self: super:
for your Kafka version. for your Kafka version.
</para> </para>
</listitem> </listitem>
<listitem>
<para>
The <package>kodi</package> package has been modified to allow concise addon management. Consider
the following configuration from previous releases of NixOS to install <package>kodi</package>,
including the <package>kodiPackages.inputstream-adaptive</package> and <package>kodiPackages.vfs-sftp</package>
addons:
<programlisting>
environment.systemPackages = [
pkgs.kodi
];
nixpkgs.config.kodi = {
enableInputStreamAdaptive = true;
enableVFSSFTP = true;
};
</programlisting>
All Kodi <literal>config</literal> flags have been removed, and as a result the above configuration
should now be written as:
<programlisting>
environment.systemPackages = [
(pkgs.kodi.withPackages (p: with p; [
inputstream-adaptive
vfs-sftp
]))
];
</programlisting>
</para>
</listitem>
</itemizedlist> </itemizedlist>
</section> </section>

View File

@ -6,8 +6,9 @@ let
dataDir = "/var/lib/mautrix-telegram"; dataDir = "/var/lib/mautrix-telegram";
registrationFile = "${dataDir}/telegram-registration.yaml"; registrationFile = "${dataDir}/telegram-registration.yaml";
cfg = config.services.mautrix-telegram; cfg = config.services.mautrix-telegram;
# TODO: switch to configGen.json once RFC42 is implemented settingsFormat = pkgs.formats.json {};
settingsFile = pkgs.writeText "mautrix-telegram-settings.json" (builtins.toJSON cfg.settings); settingsFileUnsubstituted = settingsFormat.generate "mautrix-telegram-config-unsubstituted.json" cfg.settings;
settingsFile = "${dataDir}/config.json";
in { in {
options = { options = {
@ -15,9 +16,8 @@ in {
enable = mkEnableOption "Mautrix-Telegram, a Matrix-Telegram hybrid puppeting/relaybot bridge"; enable = mkEnableOption "Mautrix-Telegram, a Matrix-Telegram hybrid puppeting/relaybot bridge";
settings = mkOption rec { settings = mkOption rec {
# TODO: switch to types.config.json as prescribed by RFC42 once it's implemented
type = types.attrs;
apply = recursiveUpdate default; apply = recursiveUpdate default;
inherit (settingsFormat) type;
default = { default = {
appservice = rec { appservice = rec {
database = "sqlite:///${dataDir}/mautrix-telegram.db"; database = "sqlite:///${dataDir}/mautrix-telegram.db";
@ -124,6 +124,16 @@ in {
after = [ "network-online.target" ] ++ cfg.serviceDependencies; after = [ "network-online.target" ] ++ cfg.serviceDependencies;
preStart = '' 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 # generate the appservice's registration file if absent
if [ ! -f '${registrationFile}' ]; then if [ ! -f '${registrationFile}' ]; then
${pkgs.mautrix-telegram}/bin/mautrix-telegram \ ${pkgs.mautrix-telegram}/bin/mautrix-telegram \
@ -159,6 +169,8 @@ in {
--config='${settingsFile}' --config='${settingsFile}'
''; '';
}; };
restartTriggers = [ settingsFileUnsubstituted ];
}; };
}; };

View File

@ -31,6 +31,7 @@ let
"dovecot" "dovecot"
"fritzbox" "fritzbox"
"json" "json"
"jitsi"
"keylight" "keylight"
"knot" "knot"
"lnd" "lnd"
@ -130,7 +131,7 @@ let
inherit name port; inherit name port;
} // extraOpts); } // extraOpts);
} ({ config, ... }: mkIf config.openFirewall { } ({ 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; internal = true;
default = {}; default = {};

View File

@ -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}
'';
};
};
}

View File

@ -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 = { json = {
exporterConfig = { exporterConfig = {
enable = true; enable = true;

View File

@ -3,12 +3,12 @@
, liblo, libsamplerate, libsndfile, lirc ? null, lrdf, qtbase }: , liblo, libsamplerate, libsndfile, lirc ? null, lrdf, qtbase }:
stdenv.mkDerivation (rec { stdenv.mkDerivation (rec {
version = "20.06"; version = "20.12";
pname = "rosegarden"; pname = "rosegarden";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/rosegarden/${pname}-${version}.tar.bz2"; url = "mirror://sourceforge/rosegarden/${pname}-${version}.tar.bz2";
sha256 = "1i9x9rkqwwdrk77xl5ra8i48cjirbc7fbisnj0nnclccwaq0wk6r"; sha256 = "sha256-iGaEr8WFipV4I00fhFGI2xMBFPf784IIxNXs2hUTHFs=";
}; };
patchPhase = '' patchPhase = ''

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "lightdm-mini-greeter"; pname = "lightdm-mini-greeter";
version = "0.5.0"; version = "0.5.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "prikhi"; owner = "prikhi";
repo = "lightdm-mini-greeter"; repo = "lightdm-mini-greeter";
rev = version; rev = version;
sha256 = "sha256-cVOnd3k+9hFQjROiwPpxZcCxD2NiH1eclJHF88eV6BM="; sha256 = "sha256-Pm7ExfusFIPktX2C4UE07qgOVhcWhVxnaD3QARpmu7Y=";
}; };
nativeBuildInputs = [ autoreconfHook pkg-config wrapGAppsHook ]; nativeBuildInputs = [ autoreconfHook pkg-config wrapGAppsHook ];

View File

@ -19,13 +19,11 @@ mkDerivation rec {
NIX_CFLAGS_COMPILE = "-I${graphicsmagick}/include/GraphicsMagick"; NIX_CFLAGS_COMPILE = "-I${graphicsmagick}/include/GraphicsMagick";
enableParallelBuilding = true;
meta = with lib; { meta = with lib; {
description = "A cross-platform image editor with a powerful features and a very friendly graphical user interface"; description = "A cross-platform image editor with a powerful features and a very friendly graphical user interface";
homepage = "https://photoflare.io"; homepage = "https://photoflare.io";
maintainers = [ maintainers.omgbebebe ]; maintainers = [ maintainers.omgbebebe ];
license = licenses.gpl3; license = licenses.gpl3Plus;
platforms = platforms.linux; platforms = platforms.linux;
}; };
} }

View File

@ -1,20 +1,22 @@
{ lib, rustPlatform, fetchFromGitHub, installShellFiles }: { stdenv, lib, rustPlatform, fetchFromGitHub, installShellFiles, SystemConfiguration, libiconv }:
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "pueue"; pname = "pueue";
version = "0.12.0"; version = "0.12.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Nukesor"; owner = "Nukesor";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-yOUVDq/wRY35ZQjQVwTLYHKukkKpoggN51wBDdZnhI4="; sha256 = "sha256-wcOF34GzlB6YKISkjDgYgsaN1NmWBMIntfT23A6byx8=";
}; };
cargoSha256 = "sha256-56jJ8IjxWTBlaDd1CVit4RP659Mgw2j2wMWcSDYVihM="; cargoSha256 = "sha256-7SJjtHNSabE/VqdiSwKZ/yNzk6GSMNsQLaSx/MjN5NA=";
nativeBuildInputs = [ installShellFiles ]; nativeBuildInputs = [ installShellFiles ];
buildInputs = lib.optionals stdenv.isDarwin [ SystemConfiguration libiconv ];
checkFlags = [ "--skip=test_single_huge_payload" "--skip=test_create_unix_socket" ]; checkFlags = [ "--skip=test_single_huge_payload" "--skip=test_create_unix_socket" ];
postInstall = '' postInstall = ''
@ -27,6 +29,7 @@ rustPlatform.buildRustPackage rec {
meta = with lib; { meta = with lib; {
description = "A daemon for managing long running shell commands"; description = "A daemon for managing long running shell commands";
homepage = "https://github.com/Nukesor/pueue"; homepage = "https://github.com/Nukesor/pueue";
changelog = "https://github.com/Nukesor/pueue/raw/v${version}/CHANGELOG.md";
license = licenses.mit; license = licenses.mit;
maintainers = [ maintainers.marsam ]; maintainers = [ maintainers.marsam ];
}; };

View File

@ -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 { rustPlatform.buildRustPackage rec {
pname = "asuka"; pname = "asuka";
version = "0.8.1"; version = "0.8.1";
src = fetchurl { src = fetchFromSourcehut {
url = "https://git.sr.ht/~julienxx/${pname}/archive/${version}.tar.gz"; owner = "~julienxx";
sha256 = "07i80qmdpwfdgwrk1gzs10wln91v23qjrsk0x134xf5mjnakxc06"; repo = pname;
rev = version;
sha256 = "1y8v4qc5dng3v9k0bky1xlf3qi9pk2vdsi29lff4ha5310467f0k";
}; };
cargoSha256 = "0p0x4ch04kydg76bfal5zqzr9hvn5268wf3k2v9h7g8r4y8xqlhw"; cargoSha256 = "0p0x4ch04kydg76bfal5zqzr9hvn5268wf3k2v9h7g8r4y8xqlhw";

View File

@ -2,16 +2,16 @@
buildGoModule rec { buildGoModule rec {
pname = "terragrunt"; pname = "terragrunt";
version = "0.28.9"; version = "0.28.11";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "gruntwork-io"; owner = "gruntwork-io";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-sqwR+bXx5ab5OsmW44C5MIXjzQFM1QsBvsM0R3pL3H8="; sha256 = "sha256-qlmiQ73MRXcdXXC50pewUMt9YFbzXIbjnZTV5gIcvGs=";
}; };
vendorSha256 = "sha256-9DBCP/4mp/Gr2ie0nk7WGfL+M7snMEztdHZzxdIFbzM="; vendorSha256 = "sha256-SVrDBDGK809O+RaE3gOa9U1agY6hSGI/k3FUCgm+5PA=";
doCheck = false; doCheck = false;

View File

@ -1,4 +1,4 @@
{ lib, buildGoModule, fetchurl { lib, buildGoModule, fetchFromSourcehut
, ncurses, notmuch, scdoc , ncurses, notmuch, scdoc
, python3, w3m, dante , python3, w3m, dante
}: }:
@ -7,9 +7,11 @@ buildGoModule rec {
pname = "aerc"; pname = "aerc";
version = "0.5.2"; version = "0.5.2";
src = fetchurl { src = fetchFromSourcehut {
url = "https://git.sr.ht/~sircmpwn/aerc/archive/${version}.tar.gz"; owner = "~sircmpwn";
sha256 = "h7kiRA5TuZ8mDSMymWU33stFLIOMd06TQLYzKW+faO4="; repo = pname;
rev = version;
sha256 = "1ja639qry8h2d6y7qshf62ypkzs2rzady59p81scqh8nx0g9bils";
}; };
runVend = true; runVend = true;

View File

@ -1,15 +1,16 @@
{ lib, stdenv, fetchFromGitHub { lib
, fetchFromGitHub
, armadillo , armadillo
, boost
, cmake , cmake
, gmp
, glog , glog
, gmock , gmock
, openssl , openssl
, gflags , gflags
, gnuradio , gnuradio3_8
, libpcap
, orc , orc
, pkg-config , pkg-config
, pythonPackages
, uhd , uhd
, log4cpp , log4cpp
, blas, lapack , blas, lapack
@ -18,7 +19,7 @@
, protobuf , protobuf
}: }:
stdenv.mkDerivation rec { gnuradio3_8.pkgs.mkDerivation rec {
pname = "gnss-sdr"; pname = "gnss-sdr";
version = "0.0.13"; version = "0.0.13";
@ -29,27 +30,32 @@ stdenv.mkDerivation rec {
sha256 = "0a3k47fl5dizzhbqbrbmckl636lznyjby2d2nz6fz21637hvrnby"; 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 = [ buildInputs = [
gmp
armadillo armadillo
boost.dev gnuradio3_8.unwrapped.boost
glog glog
gmock gmock
openssl.dev openssl
gflags gflags
gnuradio
orc orc
pythonPackages.Mako
pythonPackages.six
# UHD support is optional, but gnuradio is built with it, so there's # UHD support is optional, but gnuradio is built with it, so there's
# nothing to be gained by leaving it out. # nothing to be gained by leaving it out.
uhd gnuradio3_8.unwrapped.uhd
log4cpp log4cpp
blas lapack blas lapack
matio matio
pugixml pugixml
protobuf protobuf
gnuradio3_8.pkgs.osmosdr
libpcap
]; ];
cmakeFlags = [ cmakeFlags = [

View File

@ -5,6 +5,7 @@
# Remove gcc and python references # Remove gcc and python references
, removeReferencesTo , removeReferencesTo
, pkg-config , pkg-config
, volk
, cppunit , cppunit
, swig , swig
, orc , orc
@ -43,11 +44,12 @@
minor = "14"; minor = "14";
patch = "0"; patch = "0";
} }
, fetchSubmodules ? true # We use our build of volk and not the one bundled with the release
, fetchSubmodules ? false
}: }:
let let
sourceSha256 = "1nh4f9dmygprlbqybd3j1byg9fsr6065n140mvc4b0v8qqygmhrc"; sourceSha256 = "BiUDibXV/5cEYmAAaIxT4WTxF/ni4MJumF5oJ/vuOyc=";
featuresInfo = { featuresInfo = {
# Needed always # Needed always
basic = { basic = {
@ -61,6 +63,9 @@ let
}; };
volk = { volk = {
cmakeEnableFlag = "VOLK"; cmakeEnableFlag = "VOLK";
runtime = [
volk
];
}; };
doxygen = { doxygen = {
native = [ doxygen ]; native = [ doxygen ];
@ -213,19 +218,29 @@ let
qt = qt4; qt = qt4;
gtk = gtk2; gtk = gtk2;
}); });
inherit (shared) hasFeature; # function
in
stdenv.mkDerivation rec {
inherit pname;
inherit (shared) inherit (shared)
version version
src src
hasFeature # function
nativeBuildInputs nativeBuildInputs
buildInputs buildInputs
disallowedReferences disallowedReferences
postInstall postInstall
passthru
doCheck doCheck
dontWrapPythonPrograms dontWrapPythonPrograms
meta 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 cmakeFlags = shared.cmakeFlags
# From some reason, if these are not set, libcodec2 and gsm are # From some reason, if these are not set, libcodec2 and gsm are
# not detected properly (slightly different then what's in # not detected properly (slightly different then what's in
@ -236,6 +251,9 @@ let
"-DLIBGSM_LIBRARIES=${gsm}/lib/libgsm.so" "-DLIBGSM_LIBRARIES=${gsm}/lib/libgsm.so"
"-DLIBGSM_INCLUDE_DIR=${gsm}/include/gsm" "-DLIBGSM_INCLUDE_DIR=${gsm}/include/gsm"
] ]
++ lib.optionals (hasFeature "volk" features && volk != null) [
"-DENABLE_INTERNAL_VOLK=OFF"
]
; ;
stripDebugList = shared.stripDebugList stripDebugList = shared.stripDebugList
# gr-fcd feature was dropped in 3.8 # gr-fcd feature was dropped in 3.8
@ -250,15 +268,6 @@ let
+ lib.optionalString (hasFeature "gnuradio-companion" features) '' + lib.optionalString (hasFeature "gnuradio-companion" features) ''
sed -i 's/.*pygtk_version.*/set(PYGTK_FOUND TRUE)/g' grc/CMakeLists.txt 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 = [ patches = [
# Don't install python referencing files if python support is disabled. # Don't install python referencing files if python support is disabled.
@ -272,24 +281,4 @@ let
sha256 = "2Pitgu8accs16B5X5+/q51hr+IY9DMsA15f56gAtBs8="; sha256 = "2Pitgu8accs16B5X5+/q51hr+IY9DMsA15f56gAtBs8=";
}) })
]; ];
in
stdenv.mkDerivation rec {
inherit
pname
version
src
nativeBuildInputs
buildInputs
cmakeFlags
preConfigure
# disallowedReferences
stripDebugList
patches
postInstall
passthru
doCheck
dontWrapPythonPrograms
meta
;
} }

View File

@ -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";
})
];
}

View File

@ -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 ];
};
}

View File

@ -5,8 +5,8 @@
# Remove gcc and python references # Remove gcc and python references
, removeReferencesTo , removeReferencesTo
, pkg-config , pkg-config
, volk
, cppunit , cppunit
, swig
, orc , orc
, boost , boost
, log4cpp , log4cpp
@ -22,8 +22,13 @@
, uhd , uhd
, SDL , SDL
, gsl , gsl
, libsodium
, libsndfile
, libunwind
, cppzmq , cppzmq
, zeromq , zeromq
# Needed only if qt-gui is disabled, from some reason
, icu
# GUI related # GUI related
, gtk3 , gtk3
, pango , pango
@ -38,16 +43,15 @@
, overrideSrc ? {} , overrideSrc ? {}
, pname ? "gnuradio" , pname ? "gnuradio"
, versionAttr ? { , versionAttr ? {
major = "3.8"; major = "3.9";
minor = "2"; minor = "0";
patch = "0"; patch = "0";
} }
# Should be false on the release after 3.8.2.0 , fetchSubmodules ? false
, fetchSubmodules ? true
}: }:
let let
sourceSha256 = "1mnfwdy7w3160vi6110x2qkyq8l78qi8771zwak9n72bl7lhhpnf"; sourceSha256 = "ZjQzioAuWrd8jsYOnLNH1mK4n9EbrjgvPX3mTzVFdLk=";
featuresInfo = { featuresInfo = {
# Needed always # Needed always
basic = { basic = {
@ -57,32 +61,26 @@ let
orc orc
]; ];
runtime = [ runtime = [
volk
boost boost
log4cpp log4cpp
mpir 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; [ pythonNative = with python.pkgs; [
Mako Mako
six 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 = { doxygen = {
native = [ doxygen ]; native = [ doxygen ];
cmakeEnableFlag = "DOXYGEN"; cmakeEnableFlag = "DOXYGEN";
}; };
sphinx = {
pythonNative = with python.pkgs; [ sphinx ];
cmakeEnableFlag = "SPHINX";
};
python-support = { python-support = {
pythonRuntime = [ python.pkgs.six ]; pythonRuntime = [ python.pkgs.six ];
native = [ native = [
swig
python python
]; ];
cmakeEnableFlag = "PYTHON"; cmakeEnableFlag = "PYTHON";
@ -91,17 +89,23 @@ let
native = [ cppunit ]; native = [ cppunit ];
cmakeEnableFlag = "TESTING"; cmakeEnableFlag = "TESTING";
}; };
post-install = {
cmakeEnableFlag = "POSTINSTALL";
};
gnuradio-runtime = { gnuradio-runtime = {
cmakeEnableFlag = "GNURADIO_RUNTIME"; cmakeEnableFlag = "GNURADIO_RUNTIME";
pythonRuntime = [
python.pkgs.pybind11
];
}; };
gr-ctrlport = { gr-ctrlport = {
# Thrift support is not really working well, and even the patch they # Thrift support is not really working well, and even the patch they
# recommend applying on 0.9.2 won't apply. See: # recommend applying on 0.9.2 won't apply. See:
# https://github.com/gnuradio/gnuradio/blob/v3.8.2.0/gnuradio-runtime/lib/controlport/thrift/README # https://github.com/gnuradio/gnuradio/blob/v3.9.0.0/gnuradio-runtime/lib/controlport/thrift/README
cmakeEnableFlag = "GR_CTRLPORT"; runtime = [
native = [ libunwind
swig
]; ];
cmakeEnableFlag = "GR_CTRLPORT";
}; };
gnuradio-companion = { gnuradio-companion = {
pythonRuntime = with python.pkgs; [ pythonRuntime = with python.pkgs; [
@ -110,11 +114,15 @@ let
numpy numpy
pygobject3 pygobject3
]; ];
native = [
python.pkgs.pytest
];
runtime = [ runtime = [
gtk3 gtk3
pango pango
gobject-introspection gobject-introspection
cairo cairo
libsndfile
]; ];
cmakeEnableFlag = "GRC"; cmakeEnableFlag = "GRC";
}; };
@ -160,7 +168,9 @@ let
cmakeEnableFlag = "GR_TRELLIS"; cmakeEnableFlag = "GR_TRELLIS";
}; };
gr-uhd = { gr-uhd = {
runtime = [ uhd ]; runtime = [
uhd
];
cmakeEnableFlag = "GR_UHD"; cmakeEnableFlag = "GR_UHD";
}; };
gr-utils = { gr-utils = {
@ -173,22 +183,29 @@ let
]; ];
cmakeEnableFlag = "GR_MODTOOL"; cmakeEnableFlag = "GR_MODTOOL";
}; };
gr-blocktool = {
cmakeEnableFlag = "GR_BLOCKTOOL";
};
gr-video-sdl = { gr-video-sdl = {
runtime = [ SDL ]; runtime = [ SDL ];
cmakeEnableFlag = "GR_VIDEO_SDL"; cmakeEnableFlag = "GR_VIDEO_SDL";
}; };
gr-vocoder = { # codec2 and gsm support is broken with gr3.9: https://github.com/gnuradio/gnuradio/issues/4278
runtime = [ codec2 gsm ]; # gr-vocoder = {
cmakeEnableFlag = "GR_VOCODER"; # runtime = [ codec2 gsm ];
}; # cmakeEnableFlag = "GR_VOCODER";
# };
gr-wavelet = { gr-wavelet = {
cmakeEnableFlag = "GR_WAVELET"; cmakeEnableFlag = "GR_WAVELET";
runtime = [ gsl ]; runtime = [ gsl libsodium ];
}; };
gr-zeromq = { gr-zeromq = {
runtime = [ cppzmq zeromq ]; runtime = [ cppzmq zeromq ];
cmakeEnableFlag = "GR_ZEROMQ"; cmakeEnableFlag = "GR_ZEROMQ";
}; };
gr-network = {
cmakeEnableFlag = "GR_NETWORK";
};
}; };
shared = (import ./shared.nix { shared = (import ./shared.nix {
inherit inherit
@ -207,84 +224,42 @@ let
qt = qt5; qt = qt5;
gtk = gtk3; gtk = gtk3;
}); });
inherit (shared) inherit (shared) hasFeature; # function
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=";
})
];
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
inherit inherit pname;
pname inherit (shared)
version version
src src
nativeBuildInputs nativeBuildInputs
buildInputs buildInputs
cmakeFlags cmakeFlags
preConfigure disallowedReferences
# disallowedReferences
stripDebugList stripDebugList
patches
postInstall
passthru
doCheck doCheck
dontWrapPythonPrograms dontWrapPythonPrograms
dontWrapQtApps dontWrapQtApps
meta 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
''
;
} }

View File

@ -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 ];
};
}

View File

@ -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 ];
};
}

View File

@ -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 ];
};
}

View File

@ -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 ];
};
}

View File

@ -85,9 +85,6 @@ rec {
; ;
postInstall = "" postInstall = ""
# Gcc references # 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) '' + lib.optionalString (hasFeature "gnuradio-runtime" features) ''
${removeReferencesTo}/bin/remove-references-to -t ${stdenv.cc} $(readlink -f $out/lib/libgnuradio-runtime.so) ${removeReferencesTo}/bin/remove-references-to -t ${stdenv.cc} $(readlink -f $out/lib/libgnuradio-runtime.so)
'' ''
@ -103,9 +100,11 @@ rec {
features features
featuresInfo featuresInfo
python 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 # Wrapping is done with an external wrapper
dontWrapPythonPrograms = true; dontWrapPythonPrograms = true;

View File

@ -1,9 +1,16 @@
{ lib { lib
, stdenv , stdenv
# The unwrapped gnuradio derivation
, unwrapped , unwrapped
# If it's a minimal build, we don't want to wrap it with lndir and
# wrapProgram..
, wrap ? true
# For the wrapper
, makeWrapper , makeWrapper
# For lndir # For lndir
, xorg , xorg
# To define a the gnuradio.pkgs scope
, newScope
# For Emulating wrapGAppsHook # For Emulating wrapGAppsHook
, gsettings-desktop-schemas , gsettings-desktop-schemas
, glib , glib
@ -37,12 +44,16 @@ let
[] []
) )
) unwrapped.featuresInfo) ) unwrapped.featuresInfo)
++ lib.optionals (unwrapped.hasFeature "python-support" unwrapped.features) [ ++ lib.optionals
# Add unwrapped itself as a python module (unwrapped.hasFeature "python-support" unwrapped.features)
(unwrapped.python.pkgs.toPythonModule unwrapped) (
] # 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; name = (lib.appendToName "wrapped" unwrapped).name;
makeWrapperArgs = builtins.concatStringsSep " " ([ makeWrapperArgs = builtins.concatStringsSep " " ([
@ -88,48 +99,84 @@ let
(if unwrapped.versionAttr.major == "3.8" then (if unwrapped.versionAttr.major == "3.8" then
[ [
"--prefix" "QT_PLUGIN_PATH" ":" "--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" ":" "--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 else
# TODO: Add here qt4 related environment for 3.7? # Add here qt4 related environment for 3.7?
[ [
] ]
) )
++ extraMakeWrapperArgs ++ extraMakeWrapperArgs
); );
in
stdenv.mkDerivation {
inherit name;
buildInputs = [ packages = import ../../../top-level/gnuradio-packages.nix {
makeWrapper inherit lib stdenv newScope;
xorg.lndir gnuradio = unwrapped;
];
passthru = {
inherit python3Env pythonPkgs unwrapped;
}; };
passthru = unwrapped.passthru // {
buildCommand = '' inherit
mkdir $out pythonEnv
cd $out pythonPkgs
lndir -silent ${unwrapped} unwrapped
for i in $out/bin/*; do ;
if [[ ! -x "$i" ]]; then pkgs = packages;
continue };
fi self = if wrap then
cp -L "$i" "$i".tmp stdenv.mkDerivation {
mv -f "$i".tmp "$i" inherit name passthru;
if head -1 "$i" | grep -q ${unwrapped.python}; then buildInputs = [
substituteInPlace "$i" \ makeWrapper
--replace ${unwrapped.python} ${python3Env} xorg.lndir
fi ];
wrapProgram "$i" ${makeWrapperArgs} buildCommand = ''
done mkdir $out
''; cd $out
lndir -silent ${unwrapped}
inherit (unwrapped) meta; ${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

View File

@ -1,13 +1,23 @@
{ lib, fetchFromGitHub, cmake, qtbase, qtsvg, gnuradio, boost, gr-osmosdr { lib
, mkDerivation , fetchFromGitHub
, cmake
, pkg-config
, qt5
, gnuradio3_8Minimal
, log4cpp
, mpir
, fftwFloat
, alsaLib
, libjack2
# drivers (optional): # drivers (optional):
, rtl-sdr, hackrf , rtl-sdr
, hackrf
, pulseaudioSupport ? true, libpulseaudio , pulseaudioSupport ? true, libpulseaudio
}: }:
assert pulseaudioSupport -> libpulseaudio != null; assert pulseaudioSupport -> libpulseaudio != null;
mkDerivation rec { gnuradio3_8Minimal.pkgs.mkDerivation rec {
pname = "gqrx"; pname = "gqrx";
version = "2.14.4"; version = "2.14.4";
@ -18,9 +28,23 @@ mkDerivation rec {
sha256 = "sha256-mMaxu0jq2GaNLWjLsJQXx+zCxtyiCAZQJJZ8GJtnllQ="; sha256 = "sha256-mMaxu0jq2GaNLWjLsJQXx+zCxtyiCAZQJJZ8GJtnllQ=";
}; };
nativeBuildInputs = [ cmake ]; nativeBuildInputs = [
cmake
pkg-config
qt5.wrapQtAppsHook
];
buildInputs = [ 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 ]; ] ++ lib.optionals pulseaudioSupport [ libpulseaudio ];
postInstall = '' postInstall = ''

View File

@ -1,17 +1,14 @@
{ lib { lib
, mkDerivation , gnuradio3_8Minimal
, fetchFromGitHub , fetchFromGitHub
, pkg-config , pkg-config
, cmake , cmake
, boost
, fftwFloat , fftwFloat
, gnuradio , qt5
, liquid-dsp , liquid-dsp
, qtbase
, wrapQtAppsHook
}: }:
mkDerivation rec { gnuradio3_8Minimal.pkgs.mkDerivation rec {
pname = "inspectrum"; pname = "inspectrum";
version = "0.2.3"; version = "0.2.3";
@ -22,13 +19,15 @@ mkDerivation rec {
sha256 = "1x6nyn429pk0f7lqzskrgsbq09mq5787xd4piic95add6n1cc355"; sha256 = "1x6nyn429pk0f7lqzskrgsbq09mq5787xd4piic95add6n1cc355";
}; };
nativeBuildInputs = [ cmake pkg-config wrapQtAppsHook ]; nativeBuildInputs = [
cmake
qt5.wrapQtAppsHook
pkg-config
];
buildInputs = [ buildInputs = [
fftwFloat fftwFloat
boost
gnuradio
liquid-dsp liquid-dsp
qtbase qt5.qtbase
]; ];
meta = with lib; { meta = with lib; {

View File

@ -1,51 +1,71 @@
{ lib, stdenv, fetchFromGitHub, alsaLib, boost { lib
, qt4, libpulseaudio, codec2, libconfig , fetchFromGitHub
, gnuradio, gr-osmosdr, gsm , libpulseaudio
, libopus, libjpeg, protobuf, qwt, speex , 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 gnuradio3_8.pkgs.mkDerivation rec {
version = "0.5.0";
in stdenv.mkDerivation {
pname = "qradiolink"; pname = "qradiolink";
inherit version; version = "0.8.5-2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "kantooon"; owner = "qradiolink";
repo = "qradiolink"; repo = "qradiolink";
rev = version; rev = version;
sha256 = "0xhg5zhjznmls5m3rhpk1qx0dipxmca12s85w15d0i7qwva2f1gi"; sha256 = "MgHfKR3AJW3pIN9oCBr4BWxk1fGSCpLmMzjxvuTmuFA=";
}; };
preBuild = '' preBuild = ''
cd ext cd src/ext
protoc --cpp_out=. Mumble.proto protoc --cpp_out=. Mumble.proto
protoc --cpp_out=. QRadioLink.proto protoc --cpp_out=. QRadioLink.proto
cd .. cd ../..
qmake qmake
''; '';
installPhase = '' installPhase = ''
mkdir -p $out/bin install -D qradiolink $out/bin/qradiolink
cp qradiolink $out/bin install -Dm644 src/res/icon.png $out/share/pixmaps/qradiolink.png
install -Dm644 qradiolink.desktop $out/share/applications/qradiolink.desktop
''; '';
buildInputs = [ buildInputs = [
qt4 gnuradio3_8.unwrapped.boost
alsaLib
boost
libpulseaudio
codec2 codec2
log4cpp
gmp
libpulseaudio
libconfig libconfig
gsm gsm
gnuradio gnuradio3_8.pkgs.osmosdr
gr-osmosdr
libopus libopus
libjpeg libjpeg
protobuf
speex 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; enableParallelBuilding = true;

View File

@ -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<uhd::range_t>::iterator {aka __gnu_cxx::__normal_iterator<uhd::range_t*, std::vector<uhd::range_t> >}' changed in GCC 7.1
++ [ (lib.optionalString stdenv.isAarch32 "-DCMAKE_CXX_FLAGS=-Wno-psabi") ]
;
# Python + Mako are always required for the build itself but not necessary for runtime.
pythonEnv = python3.withPackages (ps: with ps; [ Mako ]
++ optionals (enableLibuhd_Python_api) [ numpy setuptools ]
++ optionals (enableUtils) [ requests six ]
);
nativeBuildInputs = [
cmake
pkg-config
]
# If both enableLibuhd_Python_api and enableUtils are off, we don't need
# pythonEnv in buildInputs as it's a 'build' dependency and not a runtime
# dependency
++ optionals (!enableLibuhd_Python_api && !enableUtils) [ pythonEnv ]
;
buildInputs = [
boost
libusb1
]
# However, if enableLibuhd_Python_api *or* enableUtils is on, we need
# pythonEnv for runtime as well. The utilities' runtime dependencies are
# handled at the environment
++ optionals (enableLibuhd_Python_api || enableUtils) [ pythonEnv ]
++ optionals (enableLiberio) [ liberio ]
++ optionals (enableDpdk) [ dpdk ]
;
doCheck = true;
# Build only the host software
preConfigure = "cd host";
# TODO: Check if this still needed, perhaps relevant:
# https://files.ettus.com/manual_archive/v3.15.0.0/html/page_build_guide.html#build_instructions_unix_arm
patches = if stdenv.isAarch32 then ./neon.patch else null;
postPhases = [ "installFirmware" "removeInstalledTests" ]
++ optionals (enableUtils) [ "moveUdevRules" ]
;
# UHD expects images in `$CMAKE_INSTALL_PREFIX/share/uhd/images`
installFirmware = ''
mkdir -p "$out/share/uhd/images"
tar --strip-components=1 -xvf "${uhdImagesSrc}" -C "$out/share/uhd/images"
'';
# -DENABLE_TESTS=ON installs the tests, we don't need them in the output
removeInstalledTests = ''
rm -r $out/lib/uhd/tests
'';
# Moves the udev rules to the standard location, needed only if utils are
# enabled
moveUdevRules = ''
mkdir -p $out/lib/udev/rules.d
mv $out/lib/uhd/utils/uhd-usrp.rules $out/lib/udev/rules.d/
'';
meta = with lib; {
description = "USRP Hardware Driver (for Software Defined Radio)";
longDescription = ''
The USRP Hardware Driver (UHD) software is the hardware driver for all
USRP (Universal Software Radio Peripheral) devices.
USRP devices are designed and sold by Ettus Research, LLC and its parent
company, National Instruments.
'';
homepage = "https://uhd.ettus.com/";
license = licenses.gpl3Plus;
platforms = platforms.linux ++ platforms.darwin;
maintainers = with maintainers; [ bjornfor fpletz tomberek ];
};
}

View File

@ -1,4 +1,5 @@
{ lib, stdenv { lib
, stdenv
, fetchurl , fetchurl
, fetchFromGitHub , fetchFromGitHub
, cmake , cmake
@ -8,14 +9,14 @@
, enableLibuhd_C_api ? true , enableLibuhd_C_api ? true
# requires numpy # requires numpy
, enableLibuhd_Python_api ? false , enableLibuhd_Python_api ? false
, python3 ? null , python3
, enableExamples ? false , enableExamples ? false
, enableUtils ? false , enableUtils ? false
, enableLiberio ? false , enableLiberio ? false
, liberio ? null , liberio
, libusb1 ? null , libusb1
, enableDpdk ? false , enableDpdk ? false
, dpdk ? null , dpdk
# Devices # Devices
, enableOctoClock ? true , enableOctoClock ? true
, enableMpmd ? true , enableMpmd ? true
@ -40,18 +41,18 @@ stdenv.mkDerivation rec {
pname = "uhd"; pname = "uhd";
# UHD seems to use three different version number styles: x.y.z, xxx_yyy_zzz # UHD seems to use three different version number styles: x.y.z, xxx_yyy_zzz
# and xxx.yyy.zzz. Hrmpf... style keeps changing # and xxx.yyy.zzz. Hrmpf... style keeps changing
version = "3.15.0.0"; version = "4.0.0.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "EttusResearch"; owner = "EttusResearch";
repo = "uhd"; repo = "uhd";
rev = "v${version}"; rev = "v${version}";
sha256 = "0jknln88a69fh244670nb7qrflbyv0vvdxfddb5g8ncpb6hcg8qf"; sha256 = "NCyiI4pIPw0nBRFdUGpgZ/x2mWz+Qm78ZGACUnSbGSs=";
}; };
# Firmware images are downloaded (pre-built) from the respective release on Github # Firmware images are downloaded (pre-built) from the respective release on Github
uhdImagesSrc = fetchurl { uhdImagesSrc = fetchurl {
url = "https://github.com/EttusResearch/uhd/releases/download/v${version}/uhd-images_${version}.tar.xz"; url = "https://github.com/EttusResearch/uhd/releases/download/v${version}/uhd-images_${version}.tar.xz";
sha256 = "1fir1a13ac07mqhm4sr34cixiqj2difxq0870qv1wr7a7cbfw6vp"; sha256 = "Xfx0bsHUQ5+Dp+xk0sVWWP83oyXQcUH5AX4PNEE7fY4=";
}; };
cmakeFlags = [ cmakeFlags = [

View File

@ -1,250 +1,14 @@
{ stdenv, lib, fetchFromGitHub, autoconf, automake, libtool, makeWrapper { callPackage, ... } @ args:
, 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;
let let
kodiReleaseDate = "20210219"; unwrapped = callPackage ./unwrapped.nix (removeAttrs args [ "callPackage" ]);
kodiVersion = "19.0"; kodiPackages = callPackage ./packages.nix { kodi = unwrapped; };
rel = "Matrix"; in
unwrapped.overrideAttrs (oldAttrs: {
kodi_src = fetchFromGitHub { passthru = oldAttrs.passthru // {
owner = "xbmc"; packages = kodiPackages;
repo = "xbmc"; withPackages = func: callPackage ./wrapper.nix {
rev = "${kodiVersion}-${rel}"; kodi = unwrapped;
sha256 = "097dg6a7v4ia85jx1pmlpwzdpqcqxlrmniqd005q73zvgj67zc2p"; addons = kodiPackages.requiredKodiAddons (func kodiPackages);
}; };
ffmpeg = stdenv.mkDerivation rec {
pname = "kodi-ffmpeg";
version = "4.3.1";
src = fetchFromGitHub {
owner = "xbmc";
repo = "FFmpeg";
rev = "${version}-${rel}-Beta1";
sha256 = "1c5rwlxn6xj501iw7masdv2p6wb9rkmd299lmlkx97sw1kvxvg2w";
}; };
preConfigure = '' })
cp ${kodi_src}/tools/depends/target/ffmpeg/{CMakeLists.txt,*.cmake} .
sed -i 's/ --cpu=''${CPU}//' CMakeLists.txt
sed -i 's/--strip=''${CMAKE_STRIP}/--strip=''${CMAKE_STRIP} --ranlib=''${CMAKE_RANLIB}/' CMakeLists.txt
'';
cmakeFlags = lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
"-DCROSSCOMPILING=ON"
"-DCPU=${stdenv.hostPlatform.parsed.cpu.name}"
"-DOS=${stdenv.hostPlatform.parsed.kernel.name}"
"-DPKG_CONFIG_EXECUTABLE=pkg-config"
];
buildInputs = [ libidn libtasn1 p11-kit zlib libva ]
++ lib.optional vdpauSupport libvdpau;
nativeBuildInputs = [ cmake nasm pkg-config gnutls ];
};
# We can build these externally but FindLibDvd.cmake forces us to build it
# them, so we currently just use them for the src.
libdvdcss = fetchFromGitHub {
owner = "xbmc";
repo = "libdvdcss";
rev = "1.4.2-${rel}-Beta-5";
sha256 = "0j41ydzx0imaix069s3z07xqw9q95k7llh06fc27dcn6f7b8ydyl";
};
libdvdnav = fetchFromGitHub {
owner = "xbmc";
repo = "libdvdnav";
rev = "6.0.0-${rel}-Alpha-3";
sha256 = "0qwlf4lgahxqxk1r2pzl866mi03pbp7l1fc0rk522sc0ak2s9jhb";
};
libdvdread = fetchFromGitHub {
owner = "xbmc";
repo = "libdvdread";
rev = "6.0.0-${rel}-Alpha-3";
sha256 = "1xxn01mhkdnp10cqdr357wx77vyzfb5glqpqyg8m0skyi75aii59";
};
kodi_platforms =
lib.optional useGbm "gbm" ++
lib.optional useWayland "wayland" ++
lib.optional x11Support "x11"
;
in stdenv.mkDerivation {
name = "kodi-${lib.optionalString useWayland "wayland-"}${kodiVersion}";
src = kodi_src;
buildInputs = [
gnutls libidn libtasn1 nasm p11-kit
libxml2 python3Packages.python
boost libmicrohttpd
gettext pcre-cpp yajl fribidi libva libdrm
openssl gperf tinyxml2 taglib libssh
gtest ncurses spdlog
alsaLib libGL libGLU fontconfig freetype ftgl
libjpeg libpng libtiff
libmpeg2 libsamplerate libmad
libogg libvorbis flac libxslt systemd
lzo libcdio libmodplug libass libbluray
sqlite libmysqlclient avahi lame
curl bzip2 zip glxinfo
libcec libcec_platform dcadec libuuid
libgcrypt libgpgerror libunistring
libcrossguid libplist
bluez giflib glib harfbuzz lcms2 libpthreadstubs
ffmpeg flatbuffers fmt fstrcmp rapidjson
lirc
]
++ lib.optional x11Support [
libX11 xorgproto libXt libXmu libXext.dev libXdmcp
libXinerama libXrandr.dev libXtst libXfixes
]
++ lib.optional dbusSupport dbus
++ lib.optional joystickSupport cwiid
++ lib.optional nfsSupport libnfs
++ lib.optional pulseSupport libpulseaudio
++ lib.optional rtmpSupport rtmpdump
++ lib.optional sambaSupport samba
++ lib.optional udevSupport udev
++ lib.optional usbSupport libusb-compat-0_1
++ lib.optional vdpauSupport libvdpau
++ lib.optionals useWayland [
wayland
waylandpp.dev
wayland-protocols
# Not sure why ".dev" is needed here, but CMake doesn't find libxkbcommon otherwise
libxkbcommon.dev
]
++ lib.optional useGbm [
libxkbcommon.dev
mesa.dev
libinput.dev
];
nativeBuildInputs = [
cmake
doxygen
makeWrapper
which
pkg-config gnumake
autoconf automake libtool # still needed for some components. Check if that is the case with 19.0
jre_headless yasm gettext python3Packages.python flatbuffers
# for TexturePacker
giflib zlib libpng libjpeg lzo
] ++ lib.optionals useWayland [ wayland-protocols waylandpp.bin ];
depsBuildBuild = [
buildPackages.stdenv.cc
];
cmakeFlags = [
"-DAPP_RENDER_SYSTEM=${if useGbm then "gles" else "gl"}"
"-Dlibdvdcss_URL=${libdvdcss}"
"-Dlibdvdnav_URL=${libdvdnav}"
"-Dlibdvdread_URL=${libdvdread}"
"-DGIT_VERSION=${kodiReleaseDate}"
"-DENABLE_EVENTCLIENTS=ON"
"-DENABLE_INTERNAL_CROSSGUID=OFF"
"-DENABLE_OPTICAL=ON"
"-DLIRC_DEVICE=/run/lirc/lircd"
"-DSWIG_EXECUTABLE=${buildPackages.swig}/bin/swig"
"-DFLATBUFFERS_FLATC_EXECUTABLE=${buildPackages.flatbuffers}/bin/flatc"
"-DPYTHON_EXECUTABLE=${buildPackages.python3Packages.python}/bin/python"
] ++ lib.optional useWayland [
"-DWAYLANDPP_SCANNER=${buildPackages.waylandpp}/bin/wayland-scanner++"
];
# 14 tests fail but the biggest issue is that every test takes 30 seconds -
# I'm guessing there is a thing waiting to time out
doCheck = false;
preConfigure = ''
cmakeFlagsArray+=("-DCORE_PLATFORM_NAME=${lib.concatStringsSep " " kodi_platforms}")
'' + lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
# Need these tools on the build system when cross compiling,
# hacky, but have found no other way.
CXX=${stdenv.cc.targetPrefix}c++ LD=ld make -C tools/depends/native/JsonSchemaBuilder
cmakeFlags+=" -DWITH_JSONSCHEMABUILDER=$PWD/tools/depends/native/JsonSchemaBuilder/bin"
CXX=${stdenv.cc.targetPrefix}c++ LD=ld make EXTRA_CONFIGURE= -C tools/depends/native/TexturePacker
cmakeFlags+=" -DWITH_TEXTUREPACKER=$PWD/tools/depends/native/TexturePacker/bin"
'';
postPatch = ''
substituteInPlace xbmc/platform/posix/PosixTimezone.cpp \
--replace 'usr/share/zoneinfo' 'etc/zoneinfo'
'';
postInstall = ''
for p in $(ls $out/bin/) ; do
wrapProgram $out/bin/$p \
--prefix PATH ":" "${lib.makeBinPath ([ python3Packages.python glxinfo ] ++ lib.optional x11Support xdpyinfo ++ lib.optional sambaSupport samba)}" \
--prefix LD_LIBRARY_PATH ":" "${lib.makeLibraryPath
([ curl systemd libmad libvdpau libcec libcec_platform libass ]
++ lib.optional nfsSupport libnfs
++ lib.optional rtmpSupport rtmpdump)}"
done
substituteInPlace $out/share/xsessions/kodi.desktop \
--replace kodi-standalone $out/bin/kodi-standalone
'';
doInstallCheck = true;
installCheckPhase = "$out/bin/kodi --version";
passthru = {
pythonPackages = python3Packages;
};
meta = with lib; {
description = "Media center";
homepage = "https://kodi.tv/";
license = licenses.gpl2;
platforms = platforms.linux;
maintainers = with maintainers; [ titanous edwtjo peterhoeg sephalon ];
};
}

View File

@ -1,5 +1,5 @@
{ lib, stdenv, callPackage, fetchFromGitHub { lib, stdenv, callPackage, fetchFromGitHub
, cmake, kodiPlain, libcec_platform, tinyxml, pugixml , cmake, kodi, libcec_platform, tinyxml, pugixml
, steam, udev, libusb1, jsoncpp, libhdhomerun, zlib , steam, udev, libusb1, jsoncpp, libhdhomerun, zlib
, python3Packages, expat, glib, nspr, nss, openssl , python3Packages, expat, glib, nspr, nss, openssl
, libssh, libarchive, lzma, bzip2, lz4, lzo }: , libssh, libarchive, lzma, bzip2, lz4, lzo }:
@ -8,32 +8,27 @@ with lib;
let self = rec { let self = rec {
pluginDir = "/share/kodi/addons"; addonDir = "/share/kodi/addons";
rel = "Matrix"; rel = "Matrix";
kodi = kodiPlain; inherit kodi;
# Convert derivation to a kodi module. Stolen from ../../../top-level/python-packages.nix # 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. # Use passthru in order to prevent rebuilds when possible.
passthru = (oldAttrs.passthru or {})// { passthru = (oldAttrs.passthru or {})// {
kodiPluginFor = kodi; kodiAddonFor = kodi;
requiredKodiPlugins = requiredKodiPlugins drv.propagatedBuildInputs; requiredKodiAddons = requiredKodiAddons drv.propagatedBuildInputs;
}; };
}); });
# Check whether a derivation provides a Kodi plugin. # Check whether a derivation provides a Kodi addon.
hasKodiPlugin = drv: drv ? kodiPluginFor && drv.kodiPluginFor == kodi; hasKodiAddon = drv: drv ? kodiAddonFor && drv.kodiAddonFor == kodi;
# Get list of required Kodi plugins given a list of derivations. # Get list of required Kodi addons given a list of derivations.
requiredKodiPlugins = drvs: let requiredKodiAddons = drvs: let
modules = filter hasKodiPlugin drvs; modules = filter hasKodiAddon drvs;
in unique (modules ++ concatLists (catAttrs "requiredKodiPlugins" modules)); in unique (modules ++ concatLists (catAttrs "requiredKodiAddons" modules));
kodiWithPlugins = func: callPackage ./wrapper.nix {
inherit kodi;
plugins = requiredKodiPlugins (func self);
};
kodi-platform = stdenv.mkDerivation rec { kodi-platform = stdenv.mkDerivation rec {
project = "kodi-platform"; project = "kodi-platform";
@ -48,36 +43,45 @@ let self = rec {
}; };
nativeBuildInputs = [ cmake ]; nativeBuildInputs = [ cmake ];
buildInputs = [ kodiPlain libcec_platform tinyxml ]; buildInputs = [ kodi libcec_platform tinyxml ];
}; };
mkKodiPlugin = { plugin, namespace, version, sourceDir ? null, ... }@args: buildKodiAddon =
toKodiPlugin (stdenv.mkDerivation ({ { name ? "${attrs.pname}-${attrs.version}"
name = "kodi-plugin-${plugin}-${version}"; , namespace
, sourceDir ? ""
, ... } @ attrs:
toKodiAddon (stdenv.mkDerivation ({
name = "kodi-" + name;
dontStrip = true; dontStrip = true;
extraRuntimeDependencies = [ ]; extraRuntimeDependencies = [ ];
installPhase = '' installPhase = ''
${if sourceDir == null then "" else "cd $src/$sourceDir"} cd $src/$sourceDir
d=$out${pluginDir}/${namespace} d=$out${addonDir}/${namespace}
mkdir -p $d mkdir -p $d
sauce="." sauce="."
[ -d ${namespace} ] && sauce=${namespace} [ -d ${namespace} ] && sauce=${namespace}
cp -R "$sauce/"* $d cp -R "$sauce/"* $d
''; '';
} // args)); } // attrs));
mkKodiABIPlugin = { plugin, namespace, version, extraBuildInputs ? [], buildKodiBinaryAddon =
extraRuntimeDependencies ? [], extraInstallPhase ? "", ... }@args: { name ? "${attrs.pname}-${attrs.version}"
toKodiPlugin (stdenv.mkDerivation ({ , namespace
name = "kodi-plugin-${plugin}-${version}"; , version
, extraBuildInputs ? []
, extraRuntimeDependencies ? []
, extraInstallPhase ? "", ... } @ attrs:
toKodiAddon (stdenv.mkDerivation ({
name = "kodi-" + name;
dontStrip = true; dontStrip = true;
nativeBuildInputs = [ cmake ]; nativeBuildInputs = [ cmake ];
buildInputs = [ kodiPlain kodi-platform libcec_platform ] ++ extraBuildInputs; buildInputs = [ kodi kodi-platform libcec_platform ] ++ extraBuildInputs;
inherit extraRuntimeDependencies; inherit extraRuntimeDependencies;
@ -86,25 +90,25 @@ let self = rec {
"-DOVERRIDE_PATHS=1" "-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 # and the non-wrapped kodi lib/... folder before even trying to dlopen
# them. Symlinking .so, as setting LD_LIBRARY_PATH is of no use # them. Symlinking .so, as setting LD_LIBRARY_PATH is of no use
installPhase = let n = namespace; in '' installPhase = let n = namespace; in ''
make install 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} ${extraInstallPhase}
''; '';
} // args)); } // attrs));
advanced-launcher = mkKodiPlugin rec { advanced-launcher = buildKodiAddon rec {
plugin = "advanced-launcher"; pname = "advanced-launcher";
namespace = "plugin.program.advanced.launcher"; namespace = "plugin.program.advanced.launcher";
version = "2.5.8"; version = "2.5.8";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "edwtjo"; owner = "edwtjo";
repo = plugin; repo = pname;
rev = version; rev = version;
sha256 = "142vvgs37asq5m54xqhjzqvgmb0xlirvm0kz6lxaqynp0vvgrkx2"; 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"; namespace = "plugin.program.advanced.emulator.launcher";
version = "0.9.6"; version = "0.9.6";
@ -175,8 +179,8 @@ let self = rec {
}; };
mkController = controller: { mkController = controller: {
${controller} = mkKodiPlugin rec { ${controller} = buildKodiAddon rec {
plugin = pname + "-" + controller; pname = pname + "-" + controller;
namespace = "game.controller." + controller; namespace = "game.controller." + controller;
sourceDir = "addons/" + namespace; sourceDir = "addons/" + namespace;
inherit version src meta; inherit version src meta;
@ -209,23 +213,22 @@ let self = rec {
broken = true; # requires port to python3 broken = true; # requires port to python3
}; };
in { in {
service = mkKodiPlugin { service = buildKodiAddon {
plugin = pname + "-service"; pname = pname + "-service";
version = "1.2.1"; version = "1.2.1";
namespace = "service.hyper.launcher"; namespace = "service.hyper.launcher";
inherit src meta; inherit src meta;
}; };
plugin = mkKodiPlugin { plugin = buildKodiAddon {
plugin = pname;
namespace = "plugin.hyper.launcher"; namespace = "plugin.hyper.launcher";
inherit version src meta; inherit pname version src meta;
}; };
}; };
joystick = mkKodiABIPlugin rec { joystick = buildKodiBinaryAddon rec {
pname = namespace;
namespace = "peripheral.joystick"; namespace = "peripheral.joystick";
version = "1.7.1"; version = "1.7.1";
plugin = namespace;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "xbmc"; owner = "xbmc";
@ -243,8 +246,8 @@ let self = rec {
extraBuildInputs = [ tinyxml udev ]; extraBuildInputs = [ tinyxml udev ];
}; };
simpleplugin = mkKodiPlugin rec { simpleplugin = buildKodiAddon rec {
plugin = "simpleplugin"; pname = "simpleplugin";
namespace = "script.module.simpleplugin"; namespace = "script.module.simpleplugin";
version = "2.3.2"; 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"; namespace = "plugin.video.svtplay";
version = "5.1.12"; version = "5.1.12";
src = fetchFromGitHub { src = fetchFromGitHub {
name = plugin + "-" + version + ".tar.gz"; name = pname + "-" + version + ".tar.gz";
owner = "nilzen"; owner = "nilzen";
repo = "xbmc-" + plugin; repo = "xbmc-" + pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "04j1nhm7mh9chs995lz6bv1vsq5xzk7a7c0lmk4bnfv8jrfpj0w6"; sha256 = "04j1nhm7mh9chs995lz6bv1vsq5xzk7a7c0lmk4bnfv8jrfpj0w6";
}; };
@ -292,10 +295,10 @@ let self = rec {
}; };
steam-controller = mkKodiABIPlugin rec { steam-controller = buildKodiBinaryAddon rec {
pname = namespace;
namespace = "peripheral.steamcontroller"; namespace = "peripheral.steamcontroller";
version = "0.11.0"; version = "0.11.0";
plugin = namespace;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "kodi-game"; 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"; namespace = "script.steam.launcher";
version = "3.5.1"; version = "3.5.1";
@ -343,8 +346,8 @@ let self = rec {
}; };
}; };
pdfreader = mkKodiPlugin rec { pdfreader = buildKodiAddon rec {
plugin = "pdfreader"; pname = "pdfreader";
namespace = "plugin.image.pdf"; namespace = "plugin.image.pdf";
version = "2.0.2"; 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"; namespace = "pvr.hts";
version = "8.2.2"; 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"; namespace = "pvr.hdhomerun";
version = "7.1.0"; 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"; namespace = "pvr.iptvsimple";
version = "7.4.2"; version = "7.4.2";
@ -432,9 +435,9 @@ let self = rec {
extraBuildInputs = [ zlib pugixml ]; extraBuildInputs = [ zlib pugixml ];
}; };
osmc-skin = mkKodiPlugin rec { osmc-skin = buildKodiAddon rec {
plugin = "osmc-skin"; pname = "osmc-skin";
namespace = "skin.osmc"; namespace = "skin.osmc";
version = "18.0.0"; version = "18.0.0";
@ -454,8 +457,8 @@ let self = rec {
}; };
}; };
yatp = python3Packages.toPythonModule (mkKodiPlugin rec { yatp = python3Packages.toPythonModule (buildKodiAddon rec {
plugin = "yatp"; pname = "yatp";
namespace = "plugin.video.yatp"; namespace = "plugin.video.yatp";
version = "3.3.2"; 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"; namespace = "inputstream.adaptive";
version = "2.6.7"; version = "2.6.7";
@ -500,7 +503,7 @@ let self = rec {
extraRuntimeDependencies = [ glib nspr nss stdenv.cc.cc.lib ]; extraRuntimeDependencies = [ glib nspr nss stdenv.cc.cc.lib ];
extraInstallPhase = let n = namespace; in '' 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 = { meta = {
@ -511,10 +514,10 @@ let self = rec {
}; };
}; };
vfs-sftp = mkKodiABIPlugin rec { vfs-sftp = buildKodiBinaryAddon rec {
pname = namespace;
namespace = "vfs.sftp"; namespace = "vfs.sftp";
version = "2.0.0"; version = "2.0.0";
plugin = namespace;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "xbmc"; owner = "xbmc";
@ -533,10 +536,10 @@ let self = rec {
extraBuildInputs = [ openssl libssh zlib ]; extraBuildInputs = [ openssl libssh zlib ];
}; };
vfs-libarchive = mkKodiABIPlugin rec { vfs-libarchive = buildKodiBinaryAddon rec {
pname = namespace;
namespace = "vfs.libarchive"; namespace = "vfs.libarchive";
version = "2.0.0"; version = "2.0.0";
plugin = namespace;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "xbmc"; owner = "xbmc";

View File

@ -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 ];
};
}

View File

@ -1,11 +1,9 @@
{ lib, makeWrapper, buildEnv, kodi, plugins }: { lib, makeWrapper, buildEnv, kodi, addons }:
let buildEnv {
drvName = builtins.parseDrvName kodi.name; name = "${kodi.name}-env";
in buildEnv {
name = "${drvName.name}-with-plugins-${drvName.version}";
paths = [ kodi ] ++ plugins; paths = [ kodi ] ++ addons;
pathsToLink = [ "/share" ]; pathsToLink = [ "/share" ];
buildInputs = [ makeWrapper ]; buildInputs = [ makeWrapper ];
@ -15,16 +13,11 @@ in buildEnv {
for exe in kodi{,-standalone} for exe in kodi{,-standalone}
do do
makeWrapper ${kodi}/bin/$exe $out/bin/$exe \ 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 KODI_HOME : $out/share/kodi \
--prefix LD_LIBRARY_PATH ":" "${lib.makeLibraryPath --prefix LD_LIBRARY_PATH ":" "${lib.makeLibraryPath
(lib.concatMap (lib.concatMap
(plugin: plugin.extraRuntimeDependencies or []) plugins)}" (plugin: plugin.extraRuntimeDependencies or []) addons)}"
done done
''; '';
meta = kodi.meta // {
description = kodi.meta.description
+ " (with plugins: ${lib.concatMapStringsSep ", " (x: x.name) plugins})";
};
} }

View File

@ -14,14 +14,14 @@
}: }:
let let
version = "13.0.1"; version = "13.0.2";
twemojiSrc = fetchFromGitHub { twemojiSrc = fetchFromGitHub {
name = "twemoji"; name = "twemoji";
owner = "twitter"; owner = "twitter";
repo = "twemoji"; repo = "twemoji";
rev = "v${version}"; rev = "v${version}";
sha256 = "0acinlv2l3s1jga2i9wh16mvgkxw4ipzgvjx8c80zd104lpdpgd9"; sha256 = "069pyq09jfzwp3xla8vmhbyyam32x2iyp0s29xcxlkj22p99bg6d";
}; };
pythonEnv = pythonEnv =

View File

@ -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 ];
};
}

View File

@ -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 ];
};
}

View File

@ -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 ];
};
}

View File

@ -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_)

View File

@ -1,31 +1,40 @@
{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, boost, gnuradio, uhd { lib
, makeWrapper, libsodium, cppunit, log4cpp , mkDerivation
, pythonSupport ? true, python, swig , fetchFromGitHub
, cmake
, pkg-config
, cppunit
, swig
, boost
, log4cpp
, python
, libsodium
}: }:
assert pythonSupport -> python != null && swig != null; mkDerivation {
stdenv.mkDerivation {
pname = "gr-nacl"; pname = "gr-nacl";
version = "2017-04-10"; version = "2017-04-10";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "stwunsch"; owner = "stwunsch";
repo = "gr-nacl"; repo = "gr-nacl";
rev = "15276bb0fcabf5fe4de4e58df3d579b5be0e9765"; rev = "15276bb0fcabf5fe4de4e58df3d579b5be0e9765";
sha256 = "018np0qlk61l7mlv3xxx5cj1rax8f1vqrsrch3higsl25yydbv7v"; sha256 = "018np0qlk61l7mlv3xxx5cj1rax8f1vqrsrch3higsl25yydbv7v";
}; };
disabledForGRafter = "3.8";
nativeBuildInputs = [
cmake
pkg-config
swig
python
];
nativeBuildInputs = [ cmake pkg-config ];
buildInputs = [ buildInputs = [
boost gnuradio uhd makeWrapper libsodium cppunit log4cpp cppunit
] ++ lib.optionals pythonSupport [ python swig ]; log4cpp
boost
postInstall = '' libsodium
for prog in "$out"/bin/*; do ];
wrapProgram "$prog" --set PYTHONPATH $PYTHONPATH:$(toPythonPath "$out")
done
'';
meta = with lib; { meta = with lib; {
description = "Gnuradio block for encryption"; description = "Gnuradio block for encryption";

View File

@ -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;
};
}

View File

@ -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 ];
};
}

View File

@ -36,6 +36,9 @@ stdenv.mkDerivation rec {
cp libiniparser.a $out/lib cp libiniparser.a $out/lib
cp libiniparser.so.1 $out/lib cp libiniparser.so.1 $out/lib
ln -s libiniparser.so.1 $out/lib/libiniparser.so 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; { meta = with lib; {

View File

@ -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}

View File

@ -2,12 +2,12 @@
, xercesc, xml-security-c, pkg-config, xsd, zlib, xalanc, xxd }: , xercesc, xml-security-c, pkg-config, xsd, zlib, xalanc, xxd }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "3.14.4"; version = "3.14.5";
pname = "libdigidocpp"; pname = "libdigidocpp";
src = fetchurl { src = fetchurl {
url = "https://github.com/open-eid/libdigidocpp/releases/download/v${version}/libdigidocpp-${version}.tar.gz"; 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 ]; nativeBuildInputs = [ cmake pkg-config xxd ];

View File

@ -22,14 +22,14 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "libhandy"; pname = "libhandy";
version = "1.0.3"; version = "1.2.0";
outputs = [ "out" "dev" "devdoc" "glade" ]; outputs = [ "out" "dev" "devdoc" "glade" ];
outputBin = "dev"; outputBin = "dev";
src = fetchurl { src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "sha256-VZuzrMLDYkiJF+ty7SW9wYH0riaslNF3Y0zF00yGf3o="; sha256 = "sha256-OfWQriCRDnb+HAYHsuvliXUPRWENau7Fww4u5gKiCyU=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "libisoburn"; pname = "libisoburn";
version = "1.5.2"; version = "1.5.4";
src = fetchurl { src = fetchurl {
url = "http://files.libburnia-project.org/releases/${pname}-${version}.tar.gz"; url = "http://files.libburnia-project.org/releases/${pname}-${version}.tar.gz";
sha256 = "1v4hanapr02wf2i6rncc62z8cyc18078nb2y6q4hp3hxa74hnwnc"; sha256 = "sha256-LYmEbUOIDxf6WRxTs76kL/uANijk5jDGgPwskYT3kTI=";
}; };
buildInputs = [ attr zlib libburn libisofs ]; buildInputs = [ attr zlib libburn libisofs ];

View File

@ -4,13 +4,13 @@ let
soVersion = "4"; soVersion = "4";
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
pname = "liblinear"; pname = "liblinear";
version = "2.42"; version = "2.43";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "cjlin1"; owner = "cjlin1";
repo = "liblinear"; repo = "liblinear";
rev = "v${builtins.replaceStrings ["."] [""] version}"; rev = "v${builtins.replaceStrings ["."] [""] version}";
sha256 = "0p0hpjajfkskhd7jiv5zwhfa8hi49q3mgifjlkqvy99xspv98ijj"; sha256 = "sha256-qcSMuWHJgsapWs1xgxv3fKSXcx18q8cwyIn3E4RCGKA=";
}; };
postPatch = '' postPatch = ''

View File

@ -3,13 +3,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "libofx"; pname = "libofx";
version = "0.10.0"; version = "0.10.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "LibOFX"; owner = "LibOFX";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "sha256-gdLh5ZUciN4FCJwTCaJSKJ5RjXgNDXnDOUWkyTZwf2c="; sha256 = "sha256-QIasZKwSD9YCidHCxT/HOThxE5HEQWD0I2/loDP6mlU=";
}; };
preConfigure = "./autogen.sh"; preConfigure = "./autogen.sh";

View File

@ -5,13 +5,13 @@
# https://github.com/oneapi-src/oneDNN#oneapi-deep-neural-network-library-onednn # https://github.com/oneapi-src/oneDNN#oneapi-deep-neural-network-library-onednn
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "oneDNN"; pname = "oneDNN";
version = "2.1"; version = "2.1.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "oneapi-src"; owner = "oneapi-src";
repo = "oneDNN"; repo = "oneDNN";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-PZ8r1eNfz4dVxlbtQJSrxiw/Hk6E6wSDapkMy7ux9fI="; sha256 = "sha256-8nXzsY4+XnhKbuYyDWehiWqQEWoEcDBF4KagOg1WlN8=";
}; };
outputs = [ "out" "dev" "doc" ]; outputs = [ "out" "dev" "doc" ];

View File

@ -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;
};
}

View File

@ -1,4 +1,11 @@
{ lib, stdenv, buildPythonPackage, fetchPypi, libspatialindex, numpy }: { lib,
stdenv,
buildPythonPackage,
fetchPypi,
libspatialindex,
numpy,
pytestCheckHook
}:
buildPythonPackage rec { buildPythonPackage rec {
pname = "Rtree"; pname = "Rtree";
@ -9,21 +16,23 @@ buildPythonPackage rec {
sha256 = "be8772ca34699a9ad3fb4cfe2cfb6629854e453c10b3328039301bbfc128ca3e"; sha256 = "be8772ca34699a9ad3fb4cfe2cfb6629854e453c10b3328039301bbfc128ca3e";
}; };
propagatedBuildInputs = [ libspatialindex ]; buildInputs = [ libspatialindex ];
patchPhase = '' patchPhase = ''
substituteInPlace rtree/core.py --replace \ substituteInPlace rtree/finder.py --replace \
"find_library('spatialindex_c')" "'${libspatialindex}/lib/libspatialindex_c${stdenv.hostPlatform.extensions.sharedLibrary}'" "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 checkInputs = [
doCheck = false; numpy
checkInputs = [ numpy ]; pytestCheckHook
];
pythonImportsCheck = [ "rtree" ];
meta = with lib; { meta = with lib; {
description = "R-Tree spatial index for Python GIS"; description = "R-Tree spatial index for Python GIS";
homepage = "https://toblerity.org/rtree/"; homepage = "https://toblerity.org/rtree/";
license = licenses.lgpl21; license = licenses.mit;
maintainers = with maintainers; [ bgamari ]; maintainers = with maintainers; [ bgamari ];
}; };
} }

View File

@ -9,7 +9,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "convertdate"; pname = "convertdate";
version = "2.3.0"; version = "2.3.1";
disabled = isPy27; disabled = isPy27;
@ -17,8 +17,8 @@ buildPythonPackage rec {
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "fitnr"; owner = "fitnr";
repo = pname; repo = pname;
rev = "v${version}"; rev = version;
sha256 = "17j188zlp46zmq8qyy4z4f9v25l3zibkwzj8wp4fxqgimjnfj2nr"; sha256 = "1g8sgd3xc9viy0kb1i4xp6bdn1hzwhrnk8kmismla88scivrhq32";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View File

@ -42,6 +42,7 @@ buildPythonPackage rec {
nativeBuildInputs = lib.optionals (!isPyPy) [ nativeBuildInputs = lib.optionals (!isPyPy) [
cffi cffi
] ++ [
rustPlatform.cargoSetupHook rustPlatform.cargoSetupHook
setuptools-rust setuptools-rust
] ++ (with rustPlatform; [ rust.cargo rust.rustc ]); ] ++ (with rustPlatform; [ rust.cargo rust.rustc ]);

View File

@ -2,13 +2,13 @@
buildGoPackage rec { buildGoPackage rec {
pname = "tfsec"; pname = "tfsec";
version = "0.39.5"; version = "0.39.6";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "tfsec"; owner = "tfsec";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-RDvwZyltPD21CQwZISOrLPVgQeRmPQc6/yssptS4XMw="; sha256 = "sha256-2P+/y3iP/eMGGc0W1lHWWxO+uMy5gvlvjKzZ/8maJ9o=";
}; };
goPackagePath = "github.com/tfsec/tfsec"; goPackagePath = "github.com/tfsec/tfsec";

View File

@ -2,15 +2,15 @@
buildGoModule rec { buildGoModule rec {
pname = "terraform-ls"; pname = "terraform-ls";
version = "0.14.0"; version = "0.15.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "hashicorp"; owner = "hashicorp";
repo = pname; repo = pname;
rev = "v${version}"; 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 # tests fail in sandbox mode because of trying to download stuff from releases.hashicorp.com
doCheck = false; doCheck = false;

View File

@ -2,16 +2,16 @@
buildGoModule rec { buildGoModule rec {
pname = "minio"; pname = "minio";
version = "2021-03-10T05-11-33Z"; version = "2021-03-12T00-00-47Z";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "minio"; owner = "minio";
repo = "minio"; repo = "minio";
rev = "RELEASE.${version}"; rev = "RELEASE.${version}";
sha256 = "sha256-YwlVZE7TO9qr/8lwLXdZqjxy4NGxTkmLyKFDVlTZPqQ="; sha256 = "sha256-7KHEmnrTw6SBhsImMjcv+b1wvFEg8AXgsuZTGp5iVis=";
}; };
vendorSha256 = "sha256-E+j+ysBKKSyTITmJwHieBcpXdF3+rtt4YS7OVPMC6vI="; vendorSha256 = "sha256-tMt6XRj1dd+AHqWA6WGm5GBFGx+IsP1ijYCj8cmUXy0=";
doCheck = false; doCheck = false;

View File

@ -2,14 +2,14 @@
}: }:
buildGoModule rec { buildGoModule rec {
version = "2.1.0"; version = "2.2.0";
pname = "grafana-loki"; pname = "grafana-loki";
src = fetchFromGitHub { src = fetchFromGitHub {
rev = "v${version}"; rev = "v${version}";
owner = "grafana"; owner = "grafana";
repo = "loki"; repo = "loki";
sha256 = "O/3079a67j1i9pgf18SBx0iJcQPVmb0H+K/PzQVBCDQ="; sha256 = "sha256-mEu9z3lhHSE0NMXXViX4OBbIiNba7/RPr+AFmIM77g4=";
}; };
vendorSha256 = null; vendorSha256 = null;

View File

@ -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 ];
};
}

View File

@ -5,16 +5,16 @@
buildGoModule rec { buildGoModule rec {
pname = "rtsp-simple-server"; pname = "rtsp-simple-server";
version = "0.14.2"; version = "0.15.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "aler9"; owner = "aler9";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-pnMUUxV4DM2YClwc24l+5Ehh5zc+qEOLTtiqh7c+8PI="; sha256 = "sha256-U0wZ0NrvCQjMLDDjO6Jf6uu5FlHar7Td2zhoU2+MMkM=";
}; };
vendorSha256 = "sha256-oWWUEPEpMLqXucQwUvM6fyGCwttTIV6ZcCM2VZXnKuM="; vendorSha256 = "sha256-dfAuq4iw3NQ4xaabPv7MQ88CYXgivRBeyvbmJ3SSjbI=";
# Tests need docker # Tests need docker
doCheck = false; doCheck = false;

View File

@ -2,16 +2,16 @@
buildGoModule rec { buildGoModule rec {
pname = "clair"; pname = "clair";
version = "4.0.2"; version = "4.0.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "quay"; owner = "quay";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-uGvcr7TG/NCi0YoYZnQU11zOxXDhFTnCmLQVxOqmXLY="; sha256 = "sha256-ztp3t55EOUQqTAEUZtHvHK8nTTVOAmYR9vN2hXLhpVw=";
}; };
vendorSha256 = "sha256-CO4U8uSQeHXLPj5PH/SsOI/LjT2Rs/mBHsvNTudx72I="; vendorSha256 = "sha256-+0jp/TvUjpeJJxEs2drVkUb/ua9qqqxome4M9TkpfP4=";
doCheck = false; doCheck = false;

View File

@ -1,13 +1,13 @@
{lib, stdenv, fetchurl, libaal}: {lib, stdenv, fetchurl, libaal}:
let version = "2.0.1"; in let version = "2.0.4"; in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "reiser4progs"; pname = "reiser4progs";
inherit version; inherit version;
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/reiser4/reiser4-utils/${pname}-${version}.tar.gz"; url = "mirror://sourceforge/reiser4/reiser4-utils/${pname}-${version}.tar.gz";
sha256 = "1r7m95mnp6xmp1j5k99jhmz6g9y2qq7cghlmdxsfbr3xviqfs45d"; sha256 = "sha256-WmIkISnRp5BngSfPEKY95HVEt5TBtPKu+RMBwlLsnuA=";
}; };
buildInputs = [libaal]; buildInputs = [libaal];

View File

@ -1,23 +1,26 @@
{ lib, rustPlatform, fetchFromGitHub }: { stdenv, lib, rustPlatform, fetchFromGitHub, libiconv }:
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "resvg"; pname = "resvg";
version = "0.13.1"; version = "0.14.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "RazrFalcon"; owner = "RazrFalcon";
repo = pname; repo = pname;
rev = "v${version}"; 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; doCheck = false;
meta = with lib; { meta = with lib; {
description = "An SVG rendering library"; description = "An SVG rendering library";
homepage = "https://github.com/RazrFalcon/resvg"; homepage = "https://github.com/RazrFalcon/resvg";
changelog = "https://github.com/RazrFalcon/resvg/raw/v${version}/CHANGELOG.md";
license = licenses.mpl20; license = licenses.mpl20;
maintainers = [ maintainers.marsam ]; maintainers = [ maintainers.marsam ];
}; };

View File

@ -13,11 +13,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "ibus-anthy"; pname = "ibus-anthy";
version = "1.5.11"; version = "1.5.12";
src = fetchurl { src = fetchurl {
url = "https://github.com/ibus/ibus-anthy/releases/download/${version}/${pname}-${version}.tar.gz"; url = "https://github.com/ibus/ibus-anthy/releases/download/${version}/${pname}-${version}.tar.gz";
sha256 = "1zwgswpibh67sgbza8kvg03v06maxc08ihkgm5hmh333sjq9d5c0"; sha256 = "sha256-6edY3dRq4pI3bqsXEYf6jyBjDwpXzRKKQSCP3N/fV7s=";
}; };
buildInputs = [ buildInputs = [

View File

@ -5,13 +5,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "ibus-table"; pname = "ibus-table";
version = "1.12.3"; version = "1.12.4";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "kaio"; owner = "kaio";
repo = "ibus-table"; repo = "ibus-table";
rev = version; rev = version;
sha256 = "sha256-iVbct7p+i8ifSQzOFUUnJU0RHX36cFiTlv7p79iawj8="; sha256 = "sha256-2qST5k2+8gfSf1/FaxXW4qwSQgNw/QKM+1mMWDdrjCU=";
}; };
postPatch = '' postPatch = ''

View File

@ -2,16 +2,16 @@
buildGoModule rec { buildGoModule rec {
pname = "direnv"; pname = "direnv";
version = "2.27.0"; version = "2.28.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "direnv"; owner = "direnv";
repo = "direnv"; repo = "direnv";
rev = "v${version}"; rev = "v${version}";
sha256 = "05vvn59xd2q4yjizh5fprjib5xqq58by80d5avsm8nb1qxf383b1"; sha256 = "sha256-iZ3Lf7Yg+N9BWyLLF+MrT2gpPT9BTcp6pNMpfqwcZXo=";
}; };
vendorSha256 = "084x7d7sshcsyim76d6pl6127nlqacgwwnm965srl9y5w5nqzba6"; vendorSha256 = "sha256-P8NLY1iGh86ntmYsTVlnNh5akdaM8nzcxDn6Nfmgr84=";
# we have no bash at the moment for windows # we have no bash at the moment for windows
BASH_PATH = BASH_PATH =

View File

@ -2,13 +2,13 @@
buildGoModule rec { buildGoModule rec {
pname = "minio-client"; pname = "minio-client";
version = "2021-03-10T05-59-20Z"; version = "2021-03-12T03-36-59Z";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "minio"; owner = "minio";
repo = "mc"; repo = "mc";
rev = "RELEASE.${version}"; rev = "RELEASE.${version}";
sha256 = "sha256-IoCM2FA6oNiNT6zWspMEqgq4hZ8tAQVEAqouRlBe/ts="; sha256 = "sha256-aIJjr7KaT4E4Q1Ho4D0emduJWFxdCXCodq7J43r0DMQ=";
}; };
vendorSha256 = "sha256-aoRdtv/Q7vjn0M7iSYAuyu/3pEH30x6D39xTHqQPvuo="; vendorSha256 = "sha256-aoRdtv/Q7vjn0M7iSYAuyu/3pEH30x6D39xTHqQPvuo=";

View File

@ -2,16 +2,16 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "emplace"; pname = "emplace";
version = "1.2.0"; version = "1.2.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "tversteeg"; owner = "tversteeg";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-vA+Y4j9Flcrizqh61+4X70FzF5/wK2WVHQRsAUQzKnU="; sha256 = "sha256-5t47QrYWbm8A4E1GhqZwME7rmSfU1SYVniRGSrcRpvk=";
}; };
cargoSha256 = "sha256-zGdjMpB7h+/RdM+wXffUuAyHnks6umyJmzUrANmqAS8="; cargoSha256 = "sha256-/GFpjovPGEgkfJ53+wR8CBDXiQQPDCiIaRG2Ka71dhQ=";
meta = with lib; { meta = with lib; {
description = "Mirror installed software on multiple machines"; description = "Mirror installed software on multiple machines";

View File

@ -2,14 +2,14 @@
buildGoModule rec { buildGoModule rec {
pname = "age"; pname = "age";
version = "1.0.0-beta6"; version = "1.0.0-rc.1";
vendorSha256 = "sha256-FTByNpLkWWHAWe5wVDRBGtKap/5+XGHeBMQAIdlPCkA="; vendorSha256 = "1qx6pkhq00y0lsi6f82g8hxxh65zk1c0ls91ap6hdlj7ch79bhl2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "FiloSottile"; owner = "FiloSottile";
repo = "age"; repo = "age";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-1LCcCEf2/R0am0jpA8yKl44+AoUFkbepxp9V6/nZkBQ="; sha256 = "1n25wip4qnd3v9ial1apc2ybx10b9z6lwz7flyss6kvj3x5g9jd1";
}; };
meta = with lib; { meta = with lib; {

View File

@ -5,16 +5,16 @@
buildGoModule rec { buildGoModule rec {
pname = "teler"; pname = "teler";
version = "1.0.3"; version = "1.1.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "kitabisa"; owner = "kitabisa";
repo = "teler"; repo = "teler";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-6OeGlpimQtw4w26HRzw2wmd3wjASY199p8XXPD/JMy8="; sha256 = "sha256-0tx/oyHl6s1mj7NyWMZGCJoSuOeB+BMlBrnGY4IN/i4=";
}; };
vendorSha256 = "sha256-L+wjurURpesCA2IK0r1sxvOUvNJT1wiRp75kpe6LH5s="; vendorSha256 = "sha256-KvUnDInUqFW7FypgsppIBQZKNu6HVsEeHtGwdqYtoys=";
# test require internet access # test require internet access
doCheck = false; doCheck = false;

View File

@ -5,16 +5,16 @@
buildGoModule rec { buildGoModule rec {
pname = "terrascan"; pname = "terrascan";
version = "1.3.3"; version = "1.4.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "accurics"; owner = "accurics";
repo = pname; repo = pname;
rev = "v${version}"; 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 # tests want to download a vulnerable Terraform project
doCheck = false; doCheck = false;

View File

@ -1,12 +1,14 @@
{ lib, stdenv, fetchurl }: { lib, stdenv, fetchFromSourcehut }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "scdoc"; pname = "scdoc";
version = "1.11.1"; version = "1.11.1";
src = fetchurl { src = fetchFromSourcehut {
url = "https://git.sr.ht/~sircmpwn/scdoc/archive/${version}.tar.gz"; owner = "~sircmpwn";
sha256 = "007pm3gspvya58cwb12wpnrm9dq5p28max2s0b2y9rq80nqgqag5"; repo = pname;
rev = version;
sha256 = "1g37j847j3h4a4qbbfbr6vvsxpifj9v25jgv25nd71d1n0dxlhvk";
}; };
postPatch = '' postPatch = ''

View File

@ -1,6 +1,6 @@
{ lib { lib
, stdenv , stdenv
, fetchurl , fetchFromSourcehut
, pkg-config , pkg-config
, scdoc , scdoc
, wayland , wayland
@ -12,9 +12,11 @@ stdenv.mkDerivation rec {
pname = "wev"; pname = "wev";
version = "1.0.0"; version = "1.0.0";
src = fetchurl { src = fetchFromSourcehut {
url = "https://git.sr.ht/~sircmpwn/wev/archive/${version}.tar.gz"; owner = "~sircmpwn";
sha256 = "0vlxdkb59v6nb10j28gh1a56sx8jk7ak7liwzv911kpmygnls03g"; repo = pname;
rev = version;
sha256 = "0l71v3fzgiiv6xkk365q1l08qvaymxd4kpaya6r2g8yzkr7i2hms";
}; };
nativeBuildInputs = [ pkg-config scdoc wayland ]; nativeBuildInputs = [ pkg-config scdoc wayland ];

View File

@ -1,4 +1,4 @@
{ lib, stdenv, fetchurl, meson, pkg-config, ninja, wayland { lib, stdenv, fetchFromSourcehut, meson, pkg-config, ninja, wayland
, wayland-protocols , wayland-protocols
}: }:
@ -6,9 +6,11 @@ stdenv.mkDerivation rec {
pname = "wlsunset"; pname = "wlsunset";
version = "0.1.0"; version = "0.1.0";
src = fetchurl { src = fetchFromSourcehut {
url = "https://git.sr.ht/~kennylevinsen/wlsunset/archive/${version}.tar.gz"; owner = "~kennylevinsen";
sha256 = "0g7mk14hlbwbhq6nqr84452sbgcja3hdxsqf0vws4njhfjgqiv3q"; repo = pname;
rev = version;
sha256 = "12snizvf49y40cirhr2brgyldhsykv4k2gnln2sdrajqzhrc98v6";
}; };
nativeBuildInputs = [ meson pkg-config ninja wayland ]; nativeBuildInputs = [ meson pkg-config ninja wayland ];

View File

@ -1,4 +1,4 @@
{ lib, stdenv, fetchurl { lib, stdenv, fetchFromSourcehut
, meson, pkg-config, wayland, ninja , meson, pkg-config, wayland, ninja
, cairo, libinput, pango, wayland-protocols, libxkbcommon , cairo, libinput, pango, wayland-protocols, libxkbcommon
}: }:
@ -10,9 +10,11 @@ in stdenv.mkDerivation rec {
pname = "wshowkeys-unstable"; pname = "wshowkeys-unstable";
inherit version; inherit version;
src = fetchurl { src = fetchFromSourcehut {
url = "https://git.sr.ht/~sircmpwn/wshowkeys/archive/${commit}.tar.gz"; owner = "~sircmpwn";
sha256 = "0iplmw13jmc8d3m307kc047zq8yqwm42kw9fpm270562i3p0qk4d"; repo = "wshowkeys";
rev = commit;
sha256 = "10kafdja5cwbypspwhvaxjz3hvf51vqjzbgdasl977193cvxgmbs";
}; };
nativeBuildInputs = [ meson pkg-config wayland ninja ]; nativeBuildInputs = [ meson pkg-config wayland ninja ];

View File

@ -240,16 +240,24 @@ mapAliases ({
gnome_doc_utils = gnome-doc-utils; # added 2018-02-25 gnome_doc_utils = gnome-doc-utils; # added 2018-02-25
gnome_themes_standard = gnome-themes-standard; # 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 gnunet_git = throw "gnunet_git was removed due to gnunet becoming stable"; # added 2019-05-27
gnuradio-nacl = gr-nacl; # added 2019-05-27 # Added 2020-10-16
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
gnuradio-with-packages = gnuradio3_7.override { 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 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 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 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 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 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 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_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 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 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 xara = throw "xara has been removed from nixpkgs. Unmaintained since 2006"; # added 2020-06-24
xbmc = kodi; # added 2018-04-25 xbmc = kodi; # added 2018-04-25
xbmcPlain = kodiPlain; # 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 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"; 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"; pyIRCt = throw "pyIRCt has been removed from nixpkgs as it is unmaintained and python2-only";

View File

@ -2780,7 +2780,9 @@ in
precice = callPackage ../development/libraries/precice { }; 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 {}; pixiecore = callPackage ../tools/networking/pixiecore {};
@ -3958,6 +3960,8 @@ in
volctl = callPackage ../tools/audio/volctl { }; volctl = callPackage ../tools/audio/volctl { };
volk = callPackage ../development/libraries/volk { };
vorta = libsForQt5.callPackage ../applications/backup/vorta { }; vorta = libsForQt5.callPackage ../applications/backup/vorta { };
utahfs = callPackage ../applications/networking/utahfs { }; utahfs = callPackage ../applications/networking/utahfs { };
@ -13150,7 +13154,10 @@ in
uefi-firmware-parser = callPackage ../development/tools/analysis/uefi-firmware-parser { }; 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 { }; uisp = callPackage ../development/tools/misc/uisp { };
@ -16785,13 +16792,7 @@ in
qm-dsp = callPackage ../development/libraries/audio/qm-dsp { }; qm-dsp = callPackage ../development/libraries/audio/qm-dsp { };
qradiolink = callPackage ../applications/radio/qradiolink { 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;
};
qrupdate = callPackage ../development/libraries/qrupdate { }; qrupdate = callPackage ../development/libraries/qrupdate { };
@ -18607,6 +18608,7 @@ in
prometheus-fritzbox-exporter = callPackage ../servers/monitoring/prometheus/fritzbox-exporter.nix { }; 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-gitlab-ci-pipelines-exporter = callPackage ../servers/monitoring/prometheus/gitlab-ci-pipelines-exporter.nix { };
prometheus-haproxy-exporter = callPackage ../servers/monitoring/prometheus/haproxy-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-json-exporter = callPackage ../servers/monitoring/prometheus/json-exporter.nix { };
prometheus-keylight-exporter = callPackage ../servers/monitoring/prometheus/keylight-exporter.nix { }; prometheus-keylight-exporter = callPackage ../servers/monitoring/prometheus/keylight-exporter.nix { };
prometheus-knot-exporter = callPackage ../servers/monitoring/prometheus/knot-exporter.nix { }; prometheus-knot-exporter = callPackage ../servers/monitoring/prometheus/knot-exporter.nix { };
@ -22344,81 +22346,97 @@ in
gksu = callPackage ../applications/misc/gksu { }; gksu = callPackage ../applications/misc/gksu { };
gnss-sdr = callPackage ../applications/radio/gnss-sdr { gnss-sdr = callPackage ../applications/radio/gnss-sdr { };
boost = boost166;
gnuradio = gnuradio3_7-unwrapped;
};
gnuradio-unwrapped = callPackage ../applications/radio/gnuradio { gnuradio = callPackage ../applications/radio/gnuradio/wrapper.nix {
inherit (darwin.apple_sdk.frameworks) CoreAudio; unwrapped = callPackage ../applications/radio/gnuradio {
python = python3; inherit (darwin.apple_sdk.frameworks) CoreAudio;
}; python = python3;
# A build without gui components and other utilites not needed for end user boost = boost17x;
# 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 { gnuradioPackages = lib.recurseIntoAttrs gnuradio.pkgs;
unwrapped = gnuradio-unwrapped; # 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 { gnuradio3_8 = callPackage ../applications/radio/gnuradio/wrapper.nix {
inherit (darwin.apple_sdk.frameworks) CoreAudio; unwrapped = callPackage ../applications/radio/gnuradio/3.8.nix {
python = python2; 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 # A build without gui components and other utilites not needed if gnuradio is
# used as a c++ library. # used as a c++ library.
gnuradio3_7Minimal = gnuradio3_7-unwrapped.override { gnuradio3_8Minimal = gnuradio3_8.override {
features = { wrap = false;
gnuradio-companion = false; unwrapped = gnuradio3_8.unwrapped.override {
python-support = false; volk = volk.override {
gr-ctrlport = false; enableModTool = false;
gr-qtgui = false; };
gr-utils = false; features = {
sphinx = false; gnuradio-companion = false;
doxygen = false; python-support = false;
gr-wxgui = false; examples = false;
gr-qtgui = false;
gr-utils = false;
gr-modtool = false;
sphinx = false;
doxygen = false;
};
}; };
}; };
gnuradio3_7 = callPackage ../applications/radio/gnuradio/wrapper.nix { 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 { }; 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 { goldendict = libsForQt5.callPackage ../applications/misc/goldendict {
inherit (darwin) libiconv; inherit (darwin) libiconv;
}; };
@ -22445,14 +22463,7 @@ in
gpx = callPackage ../applications/misc/gpx { }; gpx = callPackage ../applications/misc/gpx { };
gqrx = libsForQt514.callPackage ../applications/radio/gqrx { gqrx = 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;
};
};
gpx-viewer = callPackage ../applications/misc/gpx-viewer { }; gpx-viewer = callPackage ../applications/misc/gpx-viewer { };
@ -23300,9 +23311,7 @@ in
inkscape-extensions = recurseIntoAttrs (callPackages ../applications/graphics/inkscape/extensions.nix {}); inkscape-extensions = recurseIntoAttrs (callPackages ../applications/graphics/inkscape/extensions.nix {});
inspectrum = libsForQt514.callPackage ../applications/radio/inspectrum { inspectrum = callPackage ../applications/radio/inspectrum { };
gnuradio = gnuradioMinimal;
};
ion3 = callPackage ../applications/window-managers/ion-3 { ion3 = callPackage ../applications/window-managers/ion-3 {
lua = lua5_1; lua = lua5_1;
@ -26187,33 +26196,6 @@ in
cores = retroArchCores; 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 { }; wsjtx = qt5.callPackage ../applications/radio/wsjtx { };
wxhexeditor = callPackage ../applications/editors/wxhexeditor { wxhexeditor = callPackage ../applications/editors/wxhexeditor {
@ -26271,28 +26253,16 @@ in
gtk = gtk2; gtk = gtk2;
}; };
kodiPlain = callPackage ../applications/video/kodi { }; kodiPackages = recurseIntoAttrs (kodi.packages);
kodiPlainWayland = callPackage ../applications/video/kodi { kodi = callPackage ../applications/video/kodi { };
useWayland = true;
kodi-wayland = callPackage ../applications/video/kodi {
waylandSupport = true;
}; };
kodiGBM = callPackage ../applications/video/kodi { kodi-gbm = callPackage ../applications/video/kodi {
useGbm = true; gbmSupport = true;
};
kodiPlugins = recurseIntoAttrs (callPackage ../applications/video/kodi/plugins.nix {});
kodi = wrapKodi {
kodi = kodiPlain;
};
kodi-wayland = wrapKodi {
kodi = kodiPlainWayland;
};
kodi-gbm = wrapKodi {
kodi = kodiGBM;
}; };
kodi-cli = callPackage ../tools/misc/kodi-cli { }; kodi-cli = callPackage ../tools/misc/kodi-cli { };

View File

@ -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 { };
})