Merge branch 'staging-next' into staging

This commit is contained in:
Jan Tojnar 2021-03-14 02:09:44 +01:00
commit a16ce80193
No known key found for this signature in database
GPG key ID: 7FAB2A15F7A607A4
126 changed files with 2069 additions and 1153 deletions

View file

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

View file

@ -6,8 +6,9 @@ let
dataDir = "/var/lib/mautrix-telegram";
registrationFile = "${dataDir}/telegram-registration.yaml";
cfg = config.services.mautrix-telegram;
# TODO: switch to configGen.json once RFC42 is implemented
settingsFile = pkgs.writeText "mautrix-telegram-settings.json" (builtins.toJSON cfg.settings);
settingsFormat = pkgs.formats.json {};
settingsFileUnsubstituted = settingsFormat.generate "mautrix-telegram-config-unsubstituted.json" cfg.settings;
settingsFile = "${dataDir}/config.json";
in {
options = {
@ -15,9 +16,8 @@ in {
enable = mkEnableOption "Mautrix-Telegram, a Matrix-Telegram hybrid puppeting/relaybot bridge";
settings = mkOption rec {
# TODO: switch to types.config.json as prescribed by RFC42 once it's implemented
type = types.attrs;
apply = recursiveUpdate default;
inherit (settingsFormat) type;
default = {
appservice = rec {
database = "sqlite:///${dataDir}/mautrix-telegram.db";
@ -124,6 +124,16 @@ in {
after = [ "network-online.target" ] ++ cfg.serviceDependencies;
preStart = ''
# Not all secrets can be passed as environment variable (yet)
# https://github.com/tulir/mautrix-telegram/issues/584
[ -f ${settingsFile} ] && rm -f ${settingsFile}
old_umask=$(umask)
umask 0277
${pkgs.envsubst}/bin/envsubst \
-o ${settingsFile} \
-i ${settingsFileUnsubstituted}
umask $old_umask
# generate the appservice's registration file if absent
if [ ! -f '${registrationFile}' ]; then
${pkgs.mautrix-telegram}/bin/mautrix-telegram \
@ -159,6 +169,8 @@ in {
--config='${settingsFile}'
'';
};
restartTriggers = [ settingsFileUnsubstituted ];
};
};

View file

@ -31,6 +31,7 @@ let
"dovecot"
"fritzbox"
"json"
"jitsi"
"keylight"
"knot"
"lnd"
@ -130,7 +131,7 @@ let
inherit name port;
} // extraOpts);
} ({ config, ... }: mkIf config.openFirewall {
firewallFilter = mkOptionDefault "-p tcp -m tcp --dport ${toString config.port}";
firewallFilter = mkDefault "-p tcp -m tcp --dport ${toString config.port}";
})];
internal = true;
default = {};

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

View file

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

View file

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

View file

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

View file

@ -7,19 +7,25 @@
, gtk3
, gobject-introspection
, libxml2
, fetchpatch
}:
stdenv.mkDerivation rec {
pname = "deadd-notification-center";
version = "1.7.3";
version = "2021-03-10";
src = fetchFromGitHub {
owner = "phuhl";
repo = "linux_notification_center";
rev = version;
sha256 = "QaOLrtlhQyhMOirk6JO1yMGRrgycHmF9FAdKNbN2TRk=";
rev = "640ce0f";
sha256 = "12ldr8vppylr90849g3mpjphmnr4lp0vsdkj01a5f4bv4ksx35fm";
};
dontUnpack = true;
patches = [
(fetchpatch {
url = "https://github.com/phuhl/linux_notification_center/commit/5244e1498574983322be97925e1ff7ebe456d974.patch";
sha256 = "sha256-hbqbgBmuewOhtx0na2tmFa5W128ZrBvDcyPme/mRzlI=";
})
];
nativeBuildInputs = [
autoPatchelfHook
@ -33,15 +39,18 @@ stdenv.mkDerivation rec {
hicolor-icon-theme
];
installPhase = ''
mkdir -p $out/bin $out/share/dbus-1/services
buildFlags = [
# Exclude stack from `make all` to use the prebuilt binary from .out/
"service"
];
cp $src/.out/${pname} $out/bin/
chmod +x $out/bin/${pname}
sed "s|##PREFIX##|$out|g" $src/${pname}.service.in > \
$out/share/dbus-1/services/com.ph-uhl.deadd.notification.service
'';
makeFlags = [
"PREFIX=${placeholder "out"}"
"SERVICEDIR_SYSTEMD=${placeholder "out"}/etc/systemd/user"
"SERVICEDIR_DBUS=${placeholder "out"}/share/dbus-1/services"
# Override systemd auto-detection.
"SYSTEMD=1"
];
meta = with lib; {
description = "A haskell-written notification center for users that like a desktop with style";

View file

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

View file

@ -19,24 +19,29 @@
}:
mkDerivation rec {
version = "1.1.2";
version = "1.1.3";
pname = "syncthingtray";
src = fetchFromGitHub {
owner = "Martchus";
repo = "syncthingtray";
rev = "v${version}";
sha256 = "sha256-I5QhnYp4ga3ERJ3w4qjh5gFFU+S1Htw26vHK/2M8j5s=";
sha256 = "sha256-ovit2XSkxSjcbpqQUv8IzMqfsfItbtXLbx0/Vy0+J0Y=";
};
buildInputs = [ qtbase cpp-utilities qtutilities ]
++ lib.optionals webviewSupport [ qtwebengine ]
++ lib.optionals jsSupport [ qtdeclarative ]
++ lib.optionals kioPluginSupport [ kio ]
++ lib.optionals plasmoidSupport [ extra-cmake-modules plasma-framework ]
++ lib.optionals plasmoidSupport [ plasma-framework ]
;
nativeBuildInputs = [ cmake qttools ];
nativeBuildInputs = [
cmake
qttools
]
++ lib.optionals plasmoidSupport [ extra-cmake-modules ]
;
# No tests are available by upstream, but we test --help anyway
doInstallCheck = true;
@ -56,7 +61,7 @@ mkDerivation rec {
meta = with lib; {
homepage = "https://github.com/Martchus/syncthingtray";
description = "Tray application and Dolphin/Plasma integration for Syncthing";
license = licenses.gpl2;
license = licenses.gpl2Plus;
maintainers = with maintainers; [ doronbehar ];
platforms = platforms.linux;
};

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

View file

@ -1,8 +1,8 @@
{
"stable": {
"version": "89.0.4389.82",
"sha256": "0yg33d6zldz3j1jghhdci63fn46i10dkz3nb95jdrbv8gd018jfz",
"sha256bin64": "1sqzzillq38qyh85449ncz8bni93mjxb6r4z8y5h8k2w3j38jc0q",
"version": "89.0.4389.90",
"sha256": "16i7bgk2jbcqs2p28nk5mlf0k6wah594pcsfm8b154nxbyf0iihi",
"sha256bin64": "1hgpx7isp9krarj7jpbhs97ym4i9j9a1srywv9pdfzbhw6cid2pk",
"deps": {
"gn": {
"version": "2021-01-07",

View file

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

View file

@ -6,14 +6,14 @@
python3.pkgs.buildPythonApplication rec {
pname = "zulip-term";
version = "0.5.2";
version = "0.6.0";
# no tests on PyPI
src = fetchFromGitHub {
owner = "zulip";
repo = "zulip-terminal";
rev = version;
sha256 = "1xhhy3v4wck74a83avil0rnmsi2grrh03cww19n5mv80p2q1cjmf";
sha256 = "sha256-nlvZaGMVRRCu8PZHxPWjNSxkqhZs0T/tE1js/3pDUFk=";
};
patches = [
@ -26,7 +26,9 @@ python3.pkgs.buildPythonApplication rec {
urwid-readline
beautifulsoup4
lxml
mypy-extensions
typing-extensions
python-dateutil
tzlocal
];
checkInputs = [

View file

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

View file

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

View file

@ -5,6 +5,7 @@
# Remove gcc and python references
, removeReferencesTo
, pkg-config
, volk
, cppunit
, swig
, orc
@ -43,11 +44,12 @@
minor = "14";
patch = "0";
}
, fetchSubmodules ? true
# We use our build of volk and not the one bundled with the release
, fetchSubmodules ? false
}:
let
sourceSha256 = "1nh4f9dmygprlbqybd3j1byg9fsr6065n140mvc4b0v8qqygmhrc";
sourceSha256 = "BiUDibXV/5cEYmAAaIxT4WTxF/ni4MJumF5oJ/vuOyc=";
featuresInfo = {
# Needed always
basic = {
@ -61,6 +63,9 @@ let
};
volk = {
cmakeEnableFlag = "VOLK";
runtime = [
volk
];
};
doxygen = {
native = [ doxygen ];
@ -213,19 +218,29 @@ let
qt = qt4;
gtk = gtk2;
});
inherit (shared) hasFeature; # function
in
stdenv.mkDerivation rec {
inherit pname;
inherit (shared)
version
src
hasFeature # function
nativeBuildInputs
buildInputs
disallowedReferences
postInstall
passthru
doCheck
dontWrapPythonPrograms
meta
;
passthru = shared.passthru // {
# Deps that are potentially overriden and are used inside GR plugins - the same version must
inherit boost volk;
} // lib.optionalAttrs (hasFeature "gr-uhd" features) {
inherit uhd;
};
cmakeFlags = shared.cmakeFlags
# From some reason, if these are not set, libcodec2 and gsm are
# not detected properly (slightly different then what's in
@ -236,6 +251,9 @@ let
"-DLIBGSM_LIBRARIES=${gsm}/lib/libgsm.so"
"-DLIBGSM_INCLUDE_DIR=${gsm}/include/gsm"
]
++ lib.optionals (hasFeature "volk" features && volk != null) [
"-DENABLE_INTERNAL_VOLK=OFF"
]
;
stripDebugList = shared.stripDebugList
# gr-fcd feature was dropped in 3.8
@ -250,15 +268,6 @@ let
+ lib.optionalString (hasFeature "gnuradio-companion" features) ''
sed -i 's/.*pygtk_version.*/set(PYGTK_FOUND TRUE)/g' grc/CMakeLists.txt
''
# If python-support is disabled, don't install volk's (git submodule)
# volk_modtool - it references python.
#
# NOTE: The same is done for 3.8, but we don't put this string in
# ./shared.nix since on the next release of 3.8 it won't be needed there,
# but it will be needed for 3.7, probably for ever.
+ lib.optionalString (!hasFeature "python-support" features) ''
sed -i -e "/python\/volk_modtool/d" volk/CMakeLists.txt
''
;
patches = [
# Don't install python referencing files if python support is disabled.
@ -272,24 +281,4 @@ let
sha256 = "2Pitgu8accs16B5X5+/q51hr+IY9DMsA15f56gAtBs8=";
})
];
in
stdenv.mkDerivation rec {
inherit
pname
version
src
nativeBuildInputs
buildInputs
cmakeFlags
preConfigure
# disallowedReferences
stripDebugList
patches
postInstall
passthru
doCheck
dontWrapPythonPrograms
meta
;
}

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
, removeReferencesTo
, pkg-config
, volk
, cppunit
, swig
, orc
, boost
, log4cpp
@ -22,8 +22,13 @@
, uhd
, SDL
, gsl
, libsodium
, libsndfile
, libunwind
, cppzmq
, zeromq
# Needed only if qt-gui is disabled, from some reason
, icu
# GUI related
, gtk3
, pango
@ -38,16 +43,15 @@
, overrideSrc ? {}
, pname ? "gnuradio"
, versionAttr ? {
major = "3.8";
minor = "2";
major = "3.9";
minor = "0";
patch = "0";
}
# Should be false on the release after 3.8.2.0
, fetchSubmodules ? true
, fetchSubmodules ? false
}:
let
sourceSha256 = "1mnfwdy7w3160vi6110x2qkyq8l78qi8771zwak9n72bl7lhhpnf";
sourceSha256 = "ZjQzioAuWrd8jsYOnLNH1mK4n9EbrjgvPX3mTzVFdLk=";
featuresInfo = {
# Needed always
basic = {
@ -57,32 +61,26 @@ let
orc
];
runtime = [
volk
boost
log4cpp
mpir
];
]
# when gr-qtgui is disabled, icu needs to be included, otherwise
# building with boost 1.7x fails
++ lib.optionals (!(hasFeature "gr-qtgui" features)) [ icu ];
pythonNative = with python.pkgs; [
Mako
six
];
};
# NOTE: Should be removed on the release after 3.8.2.0, see:
# https://github.com/gnuradio/gnuradio/commit/80c04479d
volk = {
cmakeEnableFlag = "VOLK";
};
doxygen = {
native = [ doxygen ];
cmakeEnableFlag = "DOXYGEN";
};
sphinx = {
pythonNative = with python.pkgs; [ sphinx ];
cmakeEnableFlag = "SPHINX";
};
python-support = {
pythonRuntime = [ python.pkgs.six ];
native = [
swig
python
];
cmakeEnableFlag = "PYTHON";
@ -91,17 +89,23 @@ let
native = [ cppunit ];
cmakeEnableFlag = "TESTING";
};
post-install = {
cmakeEnableFlag = "POSTINSTALL";
};
gnuradio-runtime = {
cmakeEnableFlag = "GNURADIO_RUNTIME";
pythonRuntime = [
python.pkgs.pybind11
];
};
gr-ctrlport = {
# Thrift support is not really working well, and even the patch they
# recommend applying on 0.9.2 won't apply. See:
# https://github.com/gnuradio/gnuradio/blob/v3.8.2.0/gnuradio-runtime/lib/controlport/thrift/README
cmakeEnableFlag = "GR_CTRLPORT";
native = [
swig
# https://github.com/gnuradio/gnuradio/blob/v3.9.0.0/gnuradio-runtime/lib/controlport/thrift/README
runtime = [
libunwind
];
cmakeEnableFlag = "GR_CTRLPORT";
};
gnuradio-companion = {
pythonRuntime = with python.pkgs; [
@ -110,11 +114,15 @@ let
numpy
pygobject3
];
native = [
python.pkgs.pytest
];
runtime = [
gtk3
pango
gobject-introspection
cairo
libsndfile
];
cmakeEnableFlag = "GRC";
};
@ -160,7 +168,9 @@ let
cmakeEnableFlag = "GR_TRELLIS";
};
gr-uhd = {
runtime = [ uhd ];
runtime = [
uhd
];
cmakeEnableFlag = "GR_UHD";
};
gr-utils = {
@ -173,22 +183,29 @@ let
];
cmakeEnableFlag = "GR_MODTOOL";
};
gr-blocktool = {
cmakeEnableFlag = "GR_BLOCKTOOL";
};
gr-video-sdl = {
runtime = [ SDL ];
cmakeEnableFlag = "GR_VIDEO_SDL";
};
gr-vocoder = {
runtime = [ codec2 gsm ];
cmakeEnableFlag = "GR_VOCODER";
};
# codec2 and gsm support is broken with gr3.9: https://github.com/gnuradio/gnuradio/issues/4278
# gr-vocoder = {
# runtime = [ codec2 gsm ];
# cmakeEnableFlag = "GR_VOCODER";
# };
gr-wavelet = {
cmakeEnableFlag = "GR_WAVELET";
runtime = [ gsl ];
runtime = [ gsl libsodium ];
};
gr-zeromq = {
runtime = [ cppzmq zeromq ];
cmakeEnableFlag = "GR_ZEROMQ";
};
gr-network = {
cmakeEnableFlag = "GR_NETWORK";
};
};
shared = (import ./shared.nix {
inherit
@ -207,84 +224,42 @@ let
qt = qt5;
gtk = gtk3;
});
inherit (shared)
version
src
hasFeature # function
nativeBuildInputs
buildInputs
disallowedReferences
stripDebugList
passthru
doCheck
dontWrapPythonPrograms
dontWrapQtApps
meta
;
cmakeFlags = shared.cmakeFlags
# From some reason, if these are not set, libcodec2 and gsm are not
# detected properly. NOTE: qradiolink needs libcodec2 to be detected in
# order to build, see https://github.com/qradiolink/qradiolink/issues/67
++ lib.optionals (hasFeature "gr-vocoder" features) [
"-DLIBCODEC2_LIBRARIES=${codec2}/lib/libcodec2.so"
"-DLIBCODEC2_INCLUDE_DIRS=${codec2}/include"
"-DLIBCODEC2_HAS_FREEDV_API=ON"
"-DLIBGSM_LIBRARIES=${gsm}/lib/libgsm.so"
"-DLIBGSM_INCLUDE_DIRS=${gsm}/include/gsm"
]
;
postInstall = shared.postInstall
# This is the only python reference worth removing, if needed (3.7 doesn't
# set that reference).
+ lib.optionalString (!hasFeature "python-support" features) ''
${removeReferencesTo}/bin/remove-references-to -t ${python} $out/lib/cmake/gnuradio/GnuradioConfig.cmake
''
;
preConfigure = ""
# If python-support is disabled, don't install volk's (git submodule)
# volk_modtool - it references python.
#
# NOTE: on the next release, volk will always be required to be installed
# externally (submodule removed upstream). Hence this hook will fail and
# we'll need to package volk while able to tell it to install or not
# install python referencing files. When we'll be there, this will help:
# https://github.com/gnuradio/volk/pull/404
+ lib.optionalString (!hasFeature "python-support" features) ''
sed -i -e "/python\/volk_modtool/d" volk/CMakeLists.txt
''
;
patches = [
# Don't install python referencing files if python support is disabled.
# See: https://github.com/gnuradio/gnuradio/pull/3839
(fetchpatch {
url = "https://github.com/gnuradio/gnuradio/commit/4a4fd570b398b0b50fe875fcf0eb9c9db2ea5c6e.diff";
sha256 = "xz2E0ji6zfdOAhjfPecAcaVOIls1XP8JngLkBbBBW5Q=";
})
(fetchpatch {
url = "https://github.com/gnuradio/gnuradio/commit/dbc8ad7e7361fddc7b1dbc267c07a776a3f9664b.diff";
sha256 = "tQcCpcUbJv3yqAX8rSHN/pAuBq4ueEvoVo7sNzZGvf4=";
})
];
inherit (shared) hasFeature; # function
in
stdenv.mkDerivation rec {
inherit
pname
inherit pname;
inherit (shared)
version
src
nativeBuildInputs
buildInputs
cmakeFlags
preConfigure
# disallowedReferences
disallowedReferences
stripDebugList
patches
postInstall
passthru
doCheck
dontWrapPythonPrograms
dontWrapQtApps
meta
;
passthru = shared.passthru // {
# Deps that are potentially overriden and are used inside GR plugins - the same version must
inherit boost volk;
} // lib.optionalAttrs (hasFeature "gr-uhd" features) {
inherit uhd;
} // lib.optionalAttrs (hasFeature "gr-qtgui" features) {
inherit (libsForQt5) qwt;
};
postInstall = shared.postInstall
# This is the only python reference worth removing, if needed.
# Even if python support is enabled, and we don't care about this
# reference, pybind's path is not properly set. See:
# https://github.com/gnuradio/gnuradio/issues/4380
+ lib.optionalString (!hasFeature "python-support" features) ''
${removeReferencesTo}/bin/remove-references-to -t ${python} $out/lib/cmake/gnuradio/GnuradioConfig.cmake
${removeReferencesTo}/bin/remove-references-to -t ${python} $(readlink -f $out/lib/libgnuradio-runtime.so)
${removeReferencesTo}/bin/remove-references-to -t ${python.pkgs.pybind11} $out/lib/cmake/gnuradio/gnuradio-runtimeTargets.cmake
''
;
}

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

View file

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

View file

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

View file

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

View file

@ -1,51 +1,71 @@
{ lib, stdenv, fetchFromGitHub, alsaLib, boost
, qt4, libpulseaudio, codec2, libconfig
, gnuradio, gr-osmosdr, gsm
, libopus, libjpeg, protobuf, qwt, speex
} :
{ lib
, fetchFromGitHub
, libpulseaudio
, libconfig
# Needs a gnuradio built with qt gui support
, gnuradio3_8
# Not gnuradioPackages'
, codec2
, log4cpp
, gmp
, gsm
, libopus
, libjpeg
, libsndfile
, libftdi
, protobuf
, speex
, speexdsp
}:
let
version = "0.5.0";
in stdenv.mkDerivation {
gnuradio3_8.pkgs.mkDerivation rec {
pname = "qradiolink";
inherit version;
version = "0.8.5-2";
src = fetchFromGitHub {
owner = "kantooon";
owner = "qradiolink";
repo = "qradiolink";
rev = version;
sha256 = "0xhg5zhjznmls5m3rhpk1qx0dipxmca12s85w15d0i7qwva2f1gi";
sha256 = "MgHfKR3AJW3pIN9oCBr4BWxk1fGSCpLmMzjxvuTmuFA=";
};
preBuild = ''
cd ext
cd src/ext
protoc --cpp_out=. Mumble.proto
protoc --cpp_out=. QRadioLink.proto
cd ..
cd ../..
qmake
'';
installPhase = ''
mkdir -p $out/bin
cp qradiolink $out/bin
install -D qradiolink $out/bin/qradiolink
install -Dm644 src/res/icon.png $out/share/pixmaps/qradiolink.png
install -Dm644 qradiolink.desktop $out/share/applications/qradiolink.desktop
'';
buildInputs = [
qt4
alsaLib
boost
libpulseaudio
gnuradio3_8.unwrapped.boost
codec2
log4cpp
gmp
libpulseaudio
libconfig
gsm
gnuradio
gr-osmosdr
gnuradio3_8.pkgs.osmosdr
libopus
libjpeg
protobuf
speex
qwt
speexdsp
gnuradio3_8.qt.qtbase
gnuradio3_8.qt.qtmultimedia
libftdi
libsndfile
gnuradio3_8.qwt
];
nativeBuildInputs = [
protobuf
gnuradio3_8.qt.qmake
gnuradio3_8.qt.wrapQtAppsHook
];
enableParallelBuilding = true;

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

View file

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

View file

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

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

View file

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

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

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

@ -18,6 +18,6 @@ in stdenv.mkDerivation {
homepage = "https://www.gnu.org/software/guile-opengl/";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ vyp ];
platforms = platforms.linux;
platforms = platforms.unix;
};
}

View file

@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
CLucene is a port of the very popular Java Lucene text search engine API.
'';
homepage = "http://clucene.sourceforge.net";
platforms = platforms.linux;
platforms = platforms.unix;
license = with licenses; [ asl20 lgpl2 ];
};
}

View file

@ -17,6 +17,6 @@ stdenv.mkDerivation rec {
license = lib.licenses.lgpl2;
platforms = lib.platforms.linux;
platforms = lib.platforms.unix;
};
}

View file

@ -1,4 +1,4 @@
{ lib, stdenv, fetchurl }:
{ lib, stdenv, fetchurl, libiconv }:
stdenv.mkDerivation rec {
pname = "htmlcxx";
@ -9,12 +9,13 @@ stdenv.mkDerivation rec {
sha256 = "1hgmyiad3qgbpf2dvv2jygzj6jpz4dl3n8ds4nql68a4l9g2nm07";
};
buildInputs = [ libiconv ];
patches = [ ./ptrdiff.patch ];
meta = with lib; {
homepage = "http://htmlcxx.sourceforge.net/";
description = "A simple non-validating css1 and html parser for C++";
license = licenses.lgpl2;
platforms = platforms.linux;
platforms = platforms.all;
};
}

View file

@ -36,6 +36,9 @@ stdenv.mkDerivation rec {
cp libiniparser.a $out/lib
cp libiniparser.so.1 $out/lib
ln -s libiniparser.so.1 $out/lib/libiniparser.so
mkdir -p $out/lib/pkgconfig
substituteAll ${./iniparser.pc.in} $out/lib/pkgconfig/iniparser.pc
'';
meta = with lib; {

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

@ -30,6 +30,11 @@ stdenv.mkDerivation rec {
})
];
postPatch = ''
substituteInPlace Makefile \
--replace "gcc" "${stdenv.cc.targetPrefix}cc" \
--replace "ar" "${stdenv.cc.targetPrefix}ar"
'';
makeFlags = [
"PREFIX=${placeholder "out"}"
"DATATYPE=double"
@ -40,6 +45,6 @@ stdenv.mkDerivation rec {
homepage = "https://github.com/mborgerding/kissfft";
license = licenses.bsd3;
maintainers = [ maintainers.goibhniu ];
platforms = platforms.linux;
platforms = platforms.all;
};
}

View file

@ -9,8 +9,9 @@ stdenv.mkDerivation rec {
};
patchPhase = ''
sed -i 's/define HAVE_LAPACK/undef HAVE_LAPACK/' levmar.h
substituteInPlace levmar.h --replace "define HAVE_LAPACK" "undef HAVE_LAPACK"
sed -i 's/LAPACKLIBS=.*/LAPACKLIBS=/' Makefile
substituteInPlace Makefile --replace "gcc" "${stdenv.cc.targetPrefix}cc"
'';
installPhase = ''
@ -23,6 +24,6 @@ stdenv.mkDerivation rec {
description = "ANSI C implementations of Levenberg-Marquardt, usable also from C++";
homepage = "https://www.ics.forth.gr/~lourakis/levmar/";
license = lib.licenses.gpl2Plus;
platforms = lib.platforms.linux;
platforms = lib.platforms.all;
};
}

View file

@ -18,7 +18,7 @@ stdenv.mkDerivation {
homepage = "https://github.com/Pulse-Eight/platform";
repositories.git = "https://github.com/Pulse-Eight/platform.git";
license = lib.licenses.gpl2Plus;
platforms = platforms.linux;
platforms = platforms.all;
maintainers = [ maintainers.titanous ];
};
}

View file

@ -20,12 +20,12 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
makeFlags = [ "PREFIX=$(out)" ];
makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" "AR=${stdenv.cc.targetPrefix}ar" "PREFIX=$(out)" ];
meta = with lib; {
description = "Emulate a Cisco-style telnet command-line interface";
homepage = "http://sites.dparrish.com/libcli";
license = licenses.lgpl21Plus;
platforms = platforms.linux;
platforms = platforms.all;
};
}

View file

@ -23,7 +23,7 @@ stdenv.mkDerivation {
description = "C client library for Redis (key-value database)";
homepage = "https://code.google.com/archive/p/credis/";
license = licenses.bsd3; # from homepage
platforms = platforms.linux;
platforms = platforms.all;
maintainers = [ maintainers.bjornfor ];
};
}

View file

@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
description = "Smart pointer constructs for the (GNU) C programming language";
homepage = "https://github.com/Snaipe/libcsptr";
license = licenses.mit;
platforms = [ "i686-linux" "x86_64-linux" ];
platforms = platforms.all;
maintainers = [ maintainers.fragamus ];
};
}

View file

@ -2,12 +2,12 @@
, xercesc, xml-security-c, pkg-config, xsd, zlib, xalanc, xxd }:
stdenv.mkDerivation rec {
version = "3.14.4";
version = "3.14.5";
pname = "libdigidocpp";
src = fetchurl {
url = "https://github.com/open-eid/libdigidocpp/releases/download/v${version}/libdigidocpp-${version}.tar.gz";
sha256 = "1x72icq5lp5cfv6kyxqc3863wa164s0g41nbi6gldr8syprzdk1l";
sha256 = "sha256-PSrYoz5ID88pYs/4rP2kz0NpI0pK6wcnx62HokE0g20=";
};
nativeBuildInputs = [ cmake pkg-config xxd ];

View file

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

View file

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

View file

@ -19,6 +19,6 @@ stdenv.mkDerivation rec {
homepage = "https://github.com/EasyRPG/liblcf";
license = licenses.mit;
maintainers = with maintainers; [ yegortimoshenko ];
platforms = platforms.linux;
platforms = platforms.all;
};
}

View file

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

View file

@ -10,6 +10,12 @@ stdenv.mkDerivation rec {
sha256 = "1c1n8n7mp0amsd6vkz32n8zj3vnsckv308bb7na0dg0r8969rap1";
};
postPatch = ''
substituteInPlace Makefile \
--replace "gcc" "${stdenv.cc.targetPrefix}cc" \
--replace "ar" "${stdenv.cc.targetPrefix}ar"
'';
makeFlags = [ "INSTALLPREFIX=$(out)" ];
meta = with lib; {
@ -17,6 +23,6 @@ stdenv.mkDerivation rec {
description = "NAT-PMP client";
license = licenses.bsd3;
maintainers = with maintainers; [ orivej ];
platforms = platforms.linux;
platforms = platforms.all;
};
}

View file

@ -25,6 +25,6 @@ stdenv.mkDerivation rec {
"2D irregular bin packaging and nesting library written in modern C++";
homepage = "https://github.com/Ultimaker/libnest2d";
license = licenses.lgpl3;
platforms = platforms.linux;
platforms = platforms.all;
};
}

View file

@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
'';
meta = with lib; {
platforms = platforms.linux;
platforms = platforms.all;
description = "C library implementing the OAuth secure authentication protocol";
homepage = "http://liboauth.sourceforge.net/";
repositories.git = "https://github.com/x42/liboauth.git";

View file

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

View file

@ -15,7 +15,7 @@ stdenv.mkDerivation {
description = "Library for rasterizing 2-D vector graphics";
homepage = "https://www.gnu.org/software/libxmi/";
license = lib.licenses.gpl2Plus;
platforms = lib.platforms.gnu ++ lib.platforms.linux; # arbitrary choice
platforms = lib.platforms.unix;
maintainers = [ ];
};
}

View file

@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
Scream Tracker 3 (S3M), Fast Tracker II (XM), and Impulse Tracker (IT).
'';
license = licenses.lgpl21Plus;
platforms = platforms.linux;
platforms = platforms.all;
};
src = fetchurl {

View file

@ -27,6 +27,6 @@ stdenv.mkDerivation rec {
'';
maintainers = [ maintainers.AndersonTorres ];
license = licenses.lgpl3Plus;
platforms = lib.platforms.linux;
platforms = lib.platforms.all;
};
}

View file

@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "A lightweight C library for the Jabber protocol";
platforms = platforms.linux;
platforms = platforms.all;
downloadPage = "http://mcabber.com/files/loudmouth/";
downloadURLRegexp = "loudmouth-[0-9.]+[.]tar[.]bz2$";
updateWalker = true;

View file

@ -31,6 +31,6 @@ stdenv.mkDerivation rec {
homepage = "https://sourceforge.net/projects/lrdf/";
license = lib.licenses.gpl2;
maintainers = [ lib.maintainers.marcweber ];
platforms = lib.platforms.linux;
platforms = lib.platforms.unix;
};
}

View file

@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
homepage = "https://github.com/brunocodutra/metal";
license = licenses.mit;
maintainers = with maintainers; [ pmiddend ];
platforms = platforms.linux;
platforms = platforms.all;
};
}

View file

@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
description = "A small XML library";
homepage = "https://www.msweet.org/mxml/";
license = licenses.asl20;
platforms = platforms.linux;
platforms = platforms.all;
maintainers = [ maintainers.goibhniu ];
};
}

View file

@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
description = "A simple and efficient MsgPack binary serialization library in a self-contained header file";
homepage = "https://github.com/rtsisyk/msgpuck";
license = licenses.bsd2;
platforms = platforms.linux;
platforms = platforms.all;
maintainers = with maintainers; [ izorkin ];
};
}

View file

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

View file

@ -1,13 +1,13 @@
{ lib, stdenv, fetchFromGitHub, cmake, check, subunit }:
stdenv.mkDerivation rec {
pname = "orcania";
version = "2.1.1";
version = "2.2.0";
src = fetchFromGitHub {
owner = "babelouest";
repo = pname;
rev = "v${version}";
sha256 = "0l035zbzyv623h5186rk6iq1097rxx64iwnk4s2c7l9gzv9wyapp";
sha256 = "sha256-tArXiXmoWHd42IGBZKtc4QJIBy3USPlSeW+Dv5xl1EU=";
};
nativeBuildInputs = [ cmake ];

View file

@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
homepage = "https://www.gnu.org/software/osip/";
description = "The GNU oSIP library, an implementation of the Session Initiation Protocol (SIP)";
maintainers = with lib.maintainers; [ raskin ];
platforms = lib.platforms.linux;
platforms = lib.platforms.all;
inherit version;
};
}

View file

@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
description = "Library to read and write Paradox files";
homepage = "http://pxlib.sourceforge.net/";
license = licenses.gpl2;
platforms = platforms.linux;
platforms = platforms.all;
maintainers = [ maintainers.winpat ];
};
}

View file

@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
description = "File open routines to safely open a file when in the presence of an attack";
license = lib.licenses.asl20 ;
maintainers = [lib.maintainers.raskin];
platforms = lib.platforms.linux;
platforms = lib.platforms.all;
homepage = "https://research.cs.wisc.edu/mist/safefile/";
updateWalker = true;
};

View file

@ -8,13 +8,16 @@ stdenv.mkDerivation rec {
sha256 = "0ax02fzqpaxr7d30l5xbndy1s5vgg1ag643c7zwiw2wj1czrxil8";
};
postPatch = ''
substituteInPlace Makefile --replace "gcc" "${stdenv.cc.targetPrefix}cc"
'';
installFlags = [ "INSTBASEDIR=$(out)" ];
meta = with lib; {
description = "A library for displaying messages";
homepage = "https://shh.thathost.com/pub-unix/";
license = licenses.artistic1;
platforms = platforms.linux;
platforms = platforms.all;
};
}

View file

@ -8,12 +8,16 @@ stdenv.mkDerivation rec {
sha256 = "0yd6bl6qw675sxa81nxw6plhpjf9d2ywlm8a5z66zyjf28sl7sds";
};
postPatch = ''
substituteInPlace Makefile --replace "gcc" "${stdenv.cc.targetPrefix}cc"
'';
installFlags = [ "INSTBASEDIR=$(out)" ];
meta = with lib; {
description = "A library for parsing command line options";
homepage = "https://shh.thathost.com/pub-unix/";
license = licenses.artistic1;
platforms = platforms.linux;
platforms = platforms.all;
};
}

View file

@ -21,6 +21,6 @@ stdenv.mkDerivation rec {
homepage = "https://atztogo.github.io/spglib/";
license = licenses.bsd3;
maintainers = [ maintainers.markuskowa ];
platforms = platforms.linux;
platforms = platforms.all;
};
}

View file

@ -19,6 +19,6 @@ stdenv.mkDerivation rec {
homepage = "https://www.spice-space.org/";
license = licenses.bsd3;
maintainers = with maintainers; [ bluescreen303 ];
platforms = platforms.linux;
platforms = platforms.all;
};
}

View file

@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "A program that can validate your HTML, as well as modify it to be more clean and standard";
homepage = "http://tidyp.com/";
platforms = platforms.linux;
platforms = platforms.all;
maintainers = with maintainers; [ pSub ];
license = licenses.bsd3;
};

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

View file

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

View file

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

View file

@ -13,14 +13,14 @@
# TODO: bzr support is missing because nixpkgs switched to `breezy`
buildPythonPackage rec {
version = "2.8.1";
version = "2.8.2";
pname = "powerline";
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = version;
sha256 = "0xscckcbw75pbcl4546ndrjs4682pn2sqqrd6qvqm0s6zswg7a0y";
sha256 = "sha256-6V8ozl5KJQvytfflBmKJlIZQ5m3hkpCzMBtWZ2SzcQ0=";
};
propagatedBuildInputs = [

View file

@ -28,6 +28,6 @@ stdenv.mkDerivation rec {
'';
homepage = "http://coan2.sourceforge.net/";
license = licenses.bsd3;
platforms = platforms.linux;
platforms = platforms.all;
};
}

View file

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

View file

@ -46,7 +46,7 @@ in stdenv.mkDerivation rec {
description = "Exploit Development and Reverse Engineering with GDB Made Easy";
homepage = "https://github.com/pwndbg/pwndbg";
license = licenses.mit;
platforms = platforms.linux;
platforms = platforms.all;
maintainers = with maintainers; [ mic92 ];
};
}

View file

@ -2,15 +2,15 @@
buildGoModule rec {
pname = "terraform-ls";
version = "0.14.0";
version = "0.15.0";
src = fetchFromGitHub {
owner = "hashicorp";
repo = pname;
rev = "v${version}";
sha256 = "sha256-p9q+cSnMN6Na+XZoYSHfE4SCNYOEavXE+eWIaxcD73k=";
sha256 = "sha256-/g62LSlaIK67oY6dI8S3Lni85eBBI6piqP2Fsq3HXWQ=";
};
vendorSha256 = "sha256-XOIs5Ng0FYz7OfwbrNiVN3GTIABqxlO8ITKGfnC+kWo=";
vendorSha256 = "sha256-U0jVdyY4SifPWkOkq3ohY/LvfGcYm4rI+tW1QEm39oo=";
# tests fail in sandbox mode because of trying to download stuff from releases.hashicorp.com
doCheck = false;

View file

@ -2,18 +2,20 @@
buildGoModule rec {
pname = "renderizer";
version = "2.0.9";
version = "2.0.12";
src = fetchFromGitHub {
owner = "gomatic";
repo = pname;
rev = version;
sha256 = "1bip12pcn8bqgph7vd7bzzadwbyqh80fx7gqciv9fchycwsj04rf";
rev = "v${version}";
sha256 = "sha256-Ji+wTTXLp17EYRIjUiVgd33ZeBdT8K2O8R2Ejq2Ll5I=";
};
vendorSha256 = "13z357ww4j5bmmy8ag6d6gd5b2dib8kby73q8317pqnqzaxrrbcj";
buildFlagsArray = [
"-ldflags=-s -w -X main.version=${version} -X main.commitHash=${src.rev} -X main.date=19700101T000000"
];
doCheck = false;
vendorSha256 = null;
meta = with lib; {
description = "CLI to render Go template text files";

View file

@ -31,6 +31,6 @@ stdenv.mkDerivation rec {
homepage = "http://www.vassalengine.org/";
license = licenses.lgpl21Only;
maintainers = with maintainers; [ tvestelind ];
platforms = platforms.linux;
platforms = platforms.unix;
};
}

View file

@ -6,13 +6,13 @@
stdenv.mkDerivation rec {
pname = "fatrace";
version = "0.16.1";
version = "0.16.2";
src = fetchFromGitHub {
owner = "martinpitt";
repo = pname;
rev = version;
sha256 = "0lxfqin2bw9235yah8ylb4p8lc3755050sjg30z3gy7bab0lfyg9";
sha256 = "sha256-1daYCVGz8Zd42j2QMFL5EAULKkmBnbE828i5NV9Kcb8=";
};
buildInputs = [ python3 which ];

View file

@ -7,8 +7,8 @@ stdenv.mkDerivation {
src = fetchFromGitHub {
owner = "lhmouse";
repo = "mcfgthread";
rev = "9570e5ca7b98002d707c502c919d951bf256b9c6";
sha256 = "10y2x3x601a7c1hkd6zlr3xpfsnlr05xl28v23clf619756a5755";
rev = "c446cf4fcdc262fc899a188a4bb7136284c34222";
sha256 = "1ib90lrd4dz8irq4yvzwhxqa86i5vxl2q2z3z04sf1i8hw427p2f";
};
outputs = [ "out" "dev" ];
@ -18,10 +18,6 @@ stdenv.mkDerivation {
rm -r "$sourceRoot/debug" "$sourceRoot/release"
'';
postPatch = ''
substituteInPlace Makefile.am --replace '-Werror' ""
'';
nativeBuildInputs = [
autoreconfHook
];

View file

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

View file

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

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 {
pname = "rtsp-simple-server";
version = "0.14.2";
version = "0.15.0";
src = fetchFromGitHub {
owner = "aler9";
repo = pname;
rev = "v${version}";
sha256 = "sha256-pnMUUxV4DM2YClwc24l+5Ehh5zc+qEOLTtiqh7c+8PI=";
sha256 = "sha256-U0wZ0NrvCQjMLDDjO6Jf6uu5FlHar7Td2zhoU2+MMkM=";
};
vendorSha256 = "sha256-oWWUEPEpMLqXucQwUvM6fyGCwttTIV6ZcCM2VZXnKuM=";
vendorSha256 = "sha256-dfAuq4iw3NQ4xaabPv7MQ88CYXgivRBeyvbmJ3SSjbI=";
# Tests need docker
doCheck = false;

Some files were not shown because too many files have changed in this diff Show more