diff --git a/nixos/doc/manual/release-notes/rl-2105.xml b/nixos/doc/manual/release-notes/rl-2105.xml index 8a6343123b1..5d9d91053e7 100644 --- a/nixos/doc/manual/release-notes/rl-2105.xml +++ b/nixos/doc/manual/release-notes/rl-2105.xml @@ -36,7 +36,17 @@ now point to an externally wrapped by default derivations, that allow you to also add `extraPythonPackages` to the Python interpreter used by GNURadio. Missing environmental variables needed for operational GUI were also added - (#7547). + (#75478). + + + + + GNURadio has a + pkgs attribute set, and there's a gnuradio.callPackage + function that extends pkgs with a mkDerivation, and a + mkDerivationWith, like Qt5. Now all gnuradio.pkgs are + defined with gnuradio.callPackage and some packages that depend + on gnuradio are defined with this as well. @@ -63,6 +73,13 @@ are not reproducible. Optimizations can now be enabled with an option. + + + Kodi has been updated to version 19.0 "Matrix". See + the announcement for + further details. + + @@ -588,6 +605,37 @@ self: super: for your Kafka version. + + + The kodi package has been modified to allow concise addon management. Consider + the following configuration from previous releases of NixOS to install kodi, + including the kodiPackages.inputstream-adaptive and kodiPackages.vfs-sftp + addons: + + +environment.systemPackages = [ + pkgs.kodi +]; + +nixpkgs.config.kodi = { + enableInputStreamAdaptive = true; + enableVFSSFTP = true; +}; + + + All Kodi config flags have been removed, and as a result the above configuration + should now be written as: + + +environment.systemPackages = [ + (pkgs.kodi.withPackages (p: with p; [ + inputstream-adaptive + vfs-sftp + ])) +]; + + + diff --git a/nixos/modules/services/misc/mautrix-telegram.nix b/nixos/modules/services/misc/mautrix-telegram.nix index caeb4b04164..0ae5797fea0 100644 --- a/nixos/modules/services/misc/mautrix-telegram.nix +++ b/nixos/modules/services/misc/mautrix-telegram.nix @@ -6,8 +6,9 @@ let dataDir = "/var/lib/mautrix-telegram"; registrationFile = "${dataDir}/telegram-registration.yaml"; cfg = config.services.mautrix-telegram; - # TODO: switch to configGen.json once RFC42 is implemented - settingsFile = pkgs.writeText "mautrix-telegram-settings.json" (builtins.toJSON cfg.settings); + settingsFormat = pkgs.formats.json {}; + settingsFileUnsubstituted = settingsFormat.generate "mautrix-telegram-config-unsubstituted.json" cfg.settings; + settingsFile = "${dataDir}/config.json"; in { options = { @@ -15,9 +16,8 @@ in { enable = mkEnableOption "Mautrix-Telegram, a Matrix-Telegram hybrid puppeting/relaybot bridge"; settings = mkOption rec { - # TODO: switch to types.config.json as prescribed by RFC42 once it's implemented - type = types.attrs; apply = recursiveUpdate default; + inherit (settingsFormat) type; default = { appservice = rec { database = "sqlite:///${dataDir}/mautrix-telegram.db"; @@ -124,6 +124,16 @@ in { after = [ "network-online.target" ] ++ cfg.serviceDependencies; preStart = '' + # Not all secrets can be passed as environment variable (yet) + # https://github.com/tulir/mautrix-telegram/issues/584 + [ -f ${settingsFile} ] && rm -f ${settingsFile} + old_umask=$(umask) + umask 0277 + ${pkgs.envsubst}/bin/envsubst \ + -o ${settingsFile} \ + -i ${settingsFileUnsubstituted} + umask $old_umask + # generate the appservice's registration file if absent if [ ! -f '${registrationFile}' ]; then ${pkgs.mautrix-telegram}/bin/mautrix-telegram \ @@ -159,6 +169,8 @@ in { --config='${settingsFile}' ''; }; + + restartTriggers = [ settingsFileUnsubstituted ]; }; }; diff --git a/nixos/modules/services/monitoring/prometheus/exporters.nix b/nixos/modules/services/monitoring/prometheus/exporters.nix index 115ecbf12b5..5811cda1125 100644 --- a/nixos/modules/services/monitoring/prometheus/exporters.nix +++ b/nixos/modules/services/monitoring/prometheus/exporters.nix @@ -31,6 +31,7 @@ let "dovecot" "fritzbox" "json" + "jitsi" "keylight" "knot" "lnd" @@ -130,7 +131,7 @@ let inherit name port; } // extraOpts); } ({ config, ... }: mkIf config.openFirewall { - firewallFilter = mkOptionDefault "-p tcp -m tcp --dport ${toString config.port}"; + firewallFilter = mkDefault "-p tcp -m tcp --dport ${toString config.port}"; })]; internal = true; default = {}; diff --git a/nixos/modules/services/monitoring/prometheus/exporters/jitsi.nix b/nixos/modules/services/monitoring/prometheus/exporters/jitsi.nix new file mode 100644 index 00000000000..c93a8f98e55 --- /dev/null +++ b/nixos/modules/services/monitoring/prometheus/exporters/jitsi.nix @@ -0,0 +1,40 @@ +{ config, lib, pkgs, options }: + +with lib; + +let + cfg = config.services.prometheus.exporters.jitsi; +in +{ + port = 9700; + extraOpts = { + url = mkOption { + type = types.str; + default = "http://localhost:8080/colibri/stats"; + description = '' + Jitsi Videobridge metrics URL to monitor. + This is usually /colibri/stats on port 8080 of the jitsi videobridge host. + ''; + }; + interval = mkOption { + type = types.str; + default = "30s"; + example = "1min"; + description = '' + How often to scrape new data + ''; + }; + }; + serviceOpts = { + serviceConfig = { + ExecStart = '' + ${pkgs.prometheus-jitsi-exporter}/bin/jitsiexporter \ + -url ${escapeShellArg cfg.url} \ + -host ${cfg.listenAddress} \ + -port ${toString cfg.port} \ + -interval ${toString cfg.interval} \ + ${concatStringsSep " \\\n " cfg.extraFlags} + ''; + }; + }; +} diff --git a/nixos/tests/prometheus-exporters.nix b/nixos/tests/prometheus-exporters.nix index 78a3afad0ba..290cb87abbe 100644 --- a/nixos/tests/prometheus-exporters.nix +++ b/nixos/tests/prometheus-exporters.nix @@ -233,6 +233,29 @@ let ''; }; + jitsi = { + exporterConfig = { + enable = true; + }; + metricProvider = { + systemd.services.prometheus-jitsi-exporter.after = [ "jitsi-videobridge2.service" ]; + services.jitsi-videobridge = { + enable = true; + apis = [ "colibri" "rest" ]; + }; + }; + exporterTest = '' + wait_for_unit("jitsi-videobridge2.service") + wait_for_open_port(8080) + wait_for_unit("prometheus-jitsi-exporter.service") + wait_for_open_port(9700) + wait_until_succeeds( + 'journalctl -eu prometheus-jitsi-exporter.service -o cat | grep -q "key=participants"' + ) + succeed("curl -sSf 'localhost:9700/metrics' | grep -q 'jitsi_participants 0'") + ''; + }; + json = { exporterConfig = { enable = true; diff --git a/pkgs/applications/audio/rosegarden/default.nix b/pkgs/applications/audio/rosegarden/default.nix index 5c7493ef7db..b95e5fdc76d 100644 --- a/pkgs/applications/audio/rosegarden/default.nix +++ b/pkgs/applications/audio/rosegarden/default.nix @@ -3,12 +3,12 @@ , liblo, libsamplerate, libsndfile, lirc ? null, lrdf, qtbase }: stdenv.mkDerivation (rec { - version = "20.06"; + version = "20.12"; pname = "rosegarden"; src = fetchurl { url = "mirror://sourceforge/rosegarden/${pname}-${version}.tar.bz2"; - sha256 = "1i9x9rkqwwdrk77xl5ra8i48cjirbc7fbisnj0nnclccwaq0wk6r"; + sha256 = "sha256-iGaEr8WFipV4I00fhFGI2xMBFPf784IIxNXs2hUTHFs="; }; patchPhase = '' diff --git a/pkgs/applications/display-managers/lightdm-mini-greeter/default.nix b/pkgs/applications/display-managers/lightdm-mini-greeter/default.nix index 0005fdb6339..72f38679870 100644 --- a/pkgs/applications/display-managers/lightdm-mini-greeter/default.nix +++ b/pkgs/applications/display-managers/lightdm-mini-greeter/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "lightdm-mini-greeter"; - version = "0.5.0"; + version = "0.5.1"; src = fetchFromGitHub { owner = "prikhi"; repo = "lightdm-mini-greeter"; rev = version; - sha256 = "sha256-cVOnd3k+9hFQjROiwPpxZcCxD2NiH1eclJHF88eV6BM="; + sha256 = "sha256-Pm7ExfusFIPktX2C4UE07qgOVhcWhVxnaD3QARpmu7Y="; }; nativeBuildInputs = [ autoreconfHook pkg-config wrapGAppsHook ]; diff --git a/pkgs/applications/graphics/photoflare/default.nix b/pkgs/applications/graphics/photoflare/default.nix index 0c25364b76a..303f5170d8e 100644 --- a/pkgs/applications/graphics/photoflare/default.nix +++ b/pkgs/applications/graphics/photoflare/default.nix @@ -19,13 +19,11 @@ mkDerivation rec { NIX_CFLAGS_COMPILE = "-I${graphicsmagick}/include/GraphicsMagick"; - enableParallelBuilding = true; - meta = with lib; { description = "A cross-platform image editor with a powerful features and a very friendly graphical user interface"; homepage = "https://photoflare.io"; maintainers = [ maintainers.omgbebebe ]; - license = licenses.gpl3; + license = licenses.gpl3Plus; platforms = platforms.linux; }; } diff --git a/pkgs/applications/misc/deadd-notification-center/default.nix b/pkgs/applications/misc/deadd-notification-center/default.nix index 35627b28d15..5d77f301c82 100644 --- a/pkgs/applications/misc/deadd-notification-center/default.nix +++ b/pkgs/applications/misc/deadd-notification-center/default.nix @@ -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"; diff --git a/pkgs/applications/misc/pueue/default.nix b/pkgs/applications/misc/pueue/default.nix index dd46c566cd8..cc1ae14350e 100644 --- a/pkgs/applications/misc/pueue/default.nix +++ b/pkgs/applications/misc/pueue/default.nix @@ -1,20 +1,22 @@ -{ lib, rustPlatform, fetchFromGitHub, installShellFiles }: +{ stdenv, lib, rustPlatform, fetchFromGitHub, installShellFiles, SystemConfiguration, libiconv }: rustPlatform.buildRustPackage rec { pname = "pueue"; - version = "0.12.0"; + version = "0.12.1"; src = fetchFromGitHub { owner = "Nukesor"; repo = pname; rev = "v${version}"; - sha256 = "sha256-yOUVDq/wRY35ZQjQVwTLYHKukkKpoggN51wBDdZnhI4="; + sha256 = "sha256-wcOF34GzlB6YKISkjDgYgsaN1NmWBMIntfT23A6byx8="; }; - cargoSha256 = "sha256-56jJ8IjxWTBlaDd1CVit4RP659Mgw2j2wMWcSDYVihM="; + cargoSha256 = "sha256-7SJjtHNSabE/VqdiSwKZ/yNzk6GSMNsQLaSx/MjN5NA="; nativeBuildInputs = [ installShellFiles ]; + buildInputs = lib.optionals stdenv.isDarwin [ SystemConfiguration libiconv ]; + checkFlags = [ "--skip=test_single_huge_payload" "--skip=test_create_unix_socket" ]; postInstall = '' @@ -27,6 +29,7 @@ rustPlatform.buildRustPackage rec { meta = with lib; { description = "A daemon for managing long running shell commands"; homepage = "https://github.com/Nukesor/pueue"; + changelog = "https://github.com/Nukesor/pueue/raw/v${version}/CHANGELOG.md"; license = licenses.mit; maintainers = [ maintainers.marsam ]; }; diff --git a/pkgs/applications/misc/syncthingtray/default.nix b/pkgs/applications/misc/syncthingtray/default.nix index 2a395a227ba..dc4569c6fca 100644 --- a/pkgs/applications/misc/syncthingtray/default.nix +++ b/pkgs/applications/misc/syncthingtray/default.nix @@ -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; }; diff --git a/pkgs/applications/networking/browsers/asuka/default.nix b/pkgs/applications/networking/browsers/asuka/default.nix index 98c8a8afae0..6702fdaf7a9 100644 --- a/pkgs/applications/networking/browsers/asuka/default.nix +++ b/pkgs/applications/networking/browsers/asuka/default.nix @@ -1,12 +1,14 @@ -{ lib, stdenv, rustPlatform, fetchurl, pkg-config, ncurses, openssl, Security }: +{ lib, stdenv, rustPlatform, fetchFromSourcehut, pkg-config, ncurses, openssl, Security }: rustPlatform.buildRustPackage rec { pname = "asuka"; version = "0.8.1"; - src = fetchurl { - url = "https://git.sr.ht/~julienxx/${pname}/archive/${version}.tar.gz"; - sha256 = "07i80qmdpwfdgwrk1gzs10wln91v23qjrsk0x134xf5mjnakxc06"; + src = fetchFromSourcehut { + owner = "~julienxx"; + repo = pname; + rev = version; + sha256 = "1y8v4qc5dng3v9k0bky1xlf3qi9pk2vdsi29lff4ha5310467f0k"; }; cargoSha256 = "0p0x4ch04kydg76bfal5zqzr9hvn5268wf3k2v9h7g8r4y8xqlhw"; diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.json b/pkgs/applications/networking/browsers/chromium/upstream-info.json index 6d94e30d95e..8caa446b046 100644 --- a/pkgs/applications/networking/browsers/chromium/upstream-info.json +++ b/pkgs/applications/networking/browsers/chromium/upstream-info.json @@ -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", diff --git a/pkgs/applications/networking/cluster/terragrunt/default.nix b/pkgs/applications/networking/cluster/terragrunt/default.nix index 61910895927..6cb13a01eee 100644 --- a/pkgs/applications/networking/cluster/terragrunt/default.nix +++ b/pkgs/applications/networking/cluster/terragrunt/default.nix @@ -2,16 +2,16 @@ buildGoModule rec { pname = "terragrunt"; - version = "0.28.9"; + version = "0.28.11"; src = fetchFromGitHub { owner = "gruntwork-io"; repo = pname; rev = "v${version}"; - sha256 = "sha256-sqwR+bXx5ab5OsmW44C5MIXjzQFM1QsBvsM0R3pL3H8="; + sha256 = "sha256-qlmiQ73MRXcdXXC50pewUMt9YFbzXIbjnZTV5gIcvGs="; }; - vendorSha256 = "sha256-9DBCP/4mp/Gr2ie0nk7WGfL+M7snMEztdHZzxdIFbzM="; + vendorSha256 = "sha256-SVrDBDGK809O+RaE3gOa9U1agY6hSGI/k3FUCgm+5PA="; doCheck = false; diff --git a/pkgs/applications/networking/instant-messengers/zulip-term/default.nix b/pkgs/applications/networking/instant-messengers/zulip-term/default.nix index 8f4b2200cc5..77935b30f06 100644 --- a/pkgs/applications/networking/instant-messengers/zulip-term/default.nix +++ b/pkgs/applications/networking/instant-messengers/zulip-term/default.nix @@ -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 = [ diff --git a/pkgs/applications/networking/mailreaders/aerc/default.nix b/pkgs/applications/networking/mailreaders/aerc/default.nix index 3124239b0d9..09ce39027b5 100644 --- a/pkgs/applications/networking/mailreaders/aerc/default.nix +++ b/pkgs/applications/networking/mailreaders/aerc/default.nix @@ -1,4 +1,4 @@ -{ lib, buildGoModule, fetchurl +{ lib, buildGoModule, fetchFromSourcehut , ncurses, notmuch, scdoc , python3, w3m, dante }: @@ -7,9 +7,11 @@ buildGoModule rec { pname = "aerc"; version = "0.5.2"; - src = fetchurl { - url = "https://git.sr.ht/~sircmpwn/aerc/archive/${version}.tar.gz"; - sha256 = "h7kiRA5TuZ8mDSMymWU33stFLIOMd06TQLYzKW+faO4="; + src = fetchFromSourcehut { + owner = "~sircmpwn"; + repo = pname; + rev = version; + sha256 = "1ja639qry8h2d6y7qshf62ypkzs2rzady59p81scqh8nx0g9bils"; }; runVend = true; diff --git a/pkgs/applications/radio/gnss-sdr/default.nix b/pkgs/applications/radio/gnss-sdr/default.nix index f48a21db75e..46757601867 100644 --- a/pkgs/applications/radio/gnss-sdr/default.nix +++ b/pkgs/applications/radio/gnss-sdr/default.nix @@ -1,15 +1,16 @@ -{ lib, stdenv, fetchFromGitHub +{ lib +, fetchFromGitHub , armadillo -, boost , cmake +, gmp , glog , gmock , openssl , gflags -, gnuradio +, gnuradio3_8 +, libpcap , orc , pkg-config -, pythonPackages , uhd , log4cpp , blas, lapack @@ -18,7 +19,7 @@ , protobuf }: -stdenv.mkDerivation rec { +gnuradio3_8.pkgs.mkDerivation rec { pname = "gnss-sdr"; version = "0.0.13"; @@ -29,27 +30,32 @@ stdenv.mkDerivation rec { sha256 = "0a3k47fl5dizzhbqbrbmckl636lznyjby2d2nz6fz21637hvrnby"; }; - nativeBuildInputs = [ cmake pkg-config ]; + nativeBuildInputs = [ + cmake + gnuradio3_8.unwrapped.python + gnuradio3_8.unwrapped.python.pkgs.Mako + gnuradio3_8.unwrapped.python.pkgs.six + ]; + buildInputs = [ + gmp armadillo - boost.dev + gnuradio3_8.unwrapped.boost glog gmock - openssl.dev + openssl gflags - gnuradio orc - pythonPackages.Mako - pythonPackages.six - # UHD support is optional, but gnuradio is built with it, so there's # nothing to be gained by leaving it out. - uhd + gnuradio3_8.unwrapped.uhd log4cpp blas lapack matio pugixml protobuf + gnuradio3_8.pkgs.osmosdr + libpcap ]; cmakeFlags = [ diff --git a/pkgs/applications/radio/gnuradio/3.7.nix b/pkgs/applications/radio/gnuradio/3.7.nix index a48efb9aa6d..50993dd6f8e 100644 --- a/pkgs/applications/radio/gnuradio/3.7.nix +++ b/pkgs/applications/radio/gnuradio/3.7.nix @@ -5,6 +5,7 @@ # Remove gcc and python references , removeReferencesTo , pkg-config +, volk , cppunit , swig , orc @@ -43,11 +44,12 @@ minor = "14"; patch = "0"; } -, fetchSubmodules ? true +# We use our build of volk and not the one bundled with the release +, fetchSubmodules ? false }: let - sourceSha256 = "1nh4f9dmygprlbqybd3j1byg9fsr6065n140mvc4b0v8qqygmhrc"; + sourceSha256 = "BiUDibXV/5cEYmAAaIxT4WTxF/ni4MJumF5oJ/vuOyc="; featuresInfo = { # Needed always basic = { @@ -61,6 +63,9 @@ let }; volk = { cmakeEnableFlag = "VOLK"; + runtime = [ + volk + ]; }; doxygen = { native = [ doxygen ]; @@ -213,19 +218,29 @@ let qt = qt4; gtk = gtk2; }); + inherit (shared) hasFeature; # function +in + +stdenv.mkDerivation rec { + inherit pname; inherit (shared) version src - hasFeature # function nativeBuildInputs buildInputs disallowedReferences postInstall - passthru doCheck dontWrapPythonPrograms meta ; + + passthru = shared.passthru // { + # Deps that are potentially overriden and are used inside GR plugins - the same version must + inherit boost volk; + } // lib.optionalAttrs (hasFeature "gr-uhd" features) { + inherit uhd; + }; cmakeFlags = shared.cmakeFlags # From some reason, if these are not set, libcodec2 and gsm are # not detected properly (slightly different then what's in @@ -236,6 +251,9 @@ let "-DLIBGSM_LIBRARIES=${gsm}/lib/libgsm.so" "-DLIBGSM_INCLUDE_DIR=${gsm}/include/gsm" ] + ++ lib.optionals (hasFeature "volk" features && volk != null) [ + "-DENABLE_INTERNAL_VOLK=OFF" + ] ; stripDebugList = shared.stripDebugList # gr-fcd feature was dropped in 3.8 @@ -250,15 +268,6 @@ let + lib.optionalString (hasFeature "gnuradio-companion" features) '' sed -i 's/.*pygtk_version.*/set(PYGTK_FOUND TRUE)/g' grc/CMakeLists.txt '' - # If python-support is disabled, don't install volk's (git submodule) - # volk_modtool - it references python. - # - # NOTE: The same is done for 3.8, but we don't put this string in - # ./shared.nix since on the next release of 3.8 it won't be needed there, - # but it will be needed for 3.7, probably for ever. - + lib.optionalString (!hasFeature "python-support" features) '' - sed -i -e "/python\/volk_modtool/d" volk/CMakeLists.txt - '' ; patches = [ # Don't install python referencing files if python support is disabled. @@ -272,24 +281,4 @@ let sha256 = "2Pitgu8accs16B5X5+/q51hr+IY9DMsA15f56gAtBs8="; }) ]; -in - -stdenv.mkDerivation rec { - inherit - pname - version - src - nativeBuildInputs - buildInputs - cmakeFlags - preConfigure - # disallowedReferences - stripDebugList - patches - postInstall - passthru - doCheck - dontWrapPythonPrograms - meta - ; } diff --git a/pkgs/applications/radio/gnuradio/3.8.nix b/pkgs/applications/radio/gnuradio/3.8.nix new file mode 100644 index 00000000000..799b429800d --- /dev/null +++ b/pkgs/applications/radio/gnuradio/3.8.nix @@ -0,0 +1,284 @@ +{ lib, stdenv +, fetchFromGitHub +, fetchpatch +, cmake +# Remove gcc and python references +, removeReferencesTo +, pkg-config +, volk +, cppunit +, swig +, orc +, boost +, log4cpp +, mpir +, doxygen +, python +, codec2 +, gsm +, fftwFloat +, alsaLib +, libjack2 +, CoreAudio +, uhd +, SDL +, gsl +, cppzmq +, zeromq +# Needed only if qt-gui is disabled, from some reason +, icu +# GUI related +, gtk3 +, pango +, gobject-introspection +, cairo +, qt5 +, libsForQt5 +# Features available to override, the list of them is in featuresInfo. They +# are all turned on by default. +, features ? {} +# If one wishes to use a different src or name for a very custom build +, overrideSrc ? {} +, pname ? "gnuradio" +, versionAttr ? { + major = "3.8"; + minor = "2"; + patch = "0"; +} +# We use our build of volk and not the one bundled with the release +, fetchSubmodules ? false +}: + +let + sourceSha256 = "SFDjtyQRp0fXijZukpLYtISpx8imxedlYN9mRibv1eA="; + featuresInfo = { + # Needed always + basic = { + native = [ + cmake + pkg-config + orc + ]; + runtime = [ + boost + log4cpp + mpir + ] + # when gr-qtgui is disabled, icu needs to be included, otherwise + # building with boost 1.7x fails + ++ lib.optionals (!(hasFeature "gr-qtgui" features)) [ icu ]; + pythonNative = with python.pkgs; [ + Mako + six + ]; + }; + volk = { + cmakeEnableFlag = "VOLK"; + runtime = [ + volk + ]; + }; + doxygen = { + native = [ doxygen ]; + cmakeEnableFlag = "DOXYGEN"; + }; + sphinx = { + pythonNative = with python.pkgs; [ sphinx ]; + cmakeEnableFlag = "SPHINX"; + }; + python-support = { + pythonRuntime = [ python.pkgs.six ]; + native = [ + swig + python + ]; + cmakeEnableFlag = "PYTHON"; + }; + testing-support = { + native = [ cppunit ]; + cmakeEnableFlag = "TESTING"; + }; + gnuradio-runtime = { + cmakeEnableFlag = "GNURADIO_RUNTIME"; + }; + gr-ctrlport = { + # Thrift support is not really working well, and even the patch they + # recommend applying on 0.9.2 won't apply. See: + # https://github.com/gnuradio/gnuradio/blob/v3.8.2.0/gnuradio-runtime/lib/controlport/thrift/README + cmakeEnableFlag = "GR_CTRLPORT"; + native = [ + swig + ]; + }; + gnuradio-companion = { + pythonRuntime = with python.pkgs; [ + pyyaml + Mako + numpy + pygobject3 + ]; + runtime = [ + gtk3 + pango + gobject-introspection + cairo + ]; + cmakeEnableFlag = "GRC"; + }; + gr-blocks = { + cmakeEnableFlag = "GR_BLOCKS"; + }; + gr-fec = { + cmakeEnableFlag = "GR_FEC"; + }; + gr-fft = { + runtime = [ fftwFloat ]; + cmakeEnableFlag = "GR_FFT"; + }; + gr-filter = { + runtime = [ fftwFloat ]; + cmakeEnableFlag = "GR_FILTER"; + }; + gr-analog = { + cmakeEnableFlag = "GR_ANALOG"; + }; + gr-digital = { + cmakeEnableFlag = "GR_DIGITAL"; + }; + gr-dtv = { + cmakeEnableFlag = "GR_DTV"; + }; + gr-audio = { + runtime = [] + ++ lib.optionals stdenv.isLinux [ alsaLib libjack2 ] + ++ lib.optionals stdenv.isDarwin [ CoreAudio ] + ; + cmakeEnableFlag = "GR_AUDIO"; + }; + gr-channels = { + cmakeEnableFlag = "GR_CHANNELS"; + }; + gr-qtgui = { + runtime = [ qt5.qtbase libsForQt5.qwt ]; + pythonRuntime = [ python.pkgs.pyqt5 ]; + cmakeEnableFlag = "GR_QTGUI"; + }; + gr-trellis = { + cmakeEnableFlag = "GR_TRELLIS"; + }; + gr-uhd = { + runtime = [ uhd ]; + cmakeEnableFlag = "GR_UHD"; + }; + gr-utils = { + cmakeEnableFlag = "GR_UTILS"; + }; + gr-modtool = { + pythonRuntime = with python.pkgs; [ + click + click-plugins + ]; + cmakeEnableFlag = "GR_MODTOOL"; + }; + gr-video-sdl = { + runtime = [ SDL ]; + cmakeEnableFlag = "GR_VIDEO_SDL"; + }; + gr-vocoder = { + runtime = [ codec2 gsm ]; + cmakeEnableFlag = "GR_VOCODER"; + }; + gr-wavelet = { + cmakeEnableFlag = "GR_WAVELET"; + runtime = [ gsl ]; + }; + gr-zeromq = { + runtime = [ cppzmq zeromq ]; + cmakeEnableFlag = "GR_ZEROMQ"; + }; + }; + shared = (import ./shared.nix { + inherit + stdenv + lib + python + removeReferencesTo + featuresInfo + features + versionAttr + sourceSha256 + overrideSrc + fetchFromGitHub + fetchSubmodules + ; + qt = qt5; + gtk = gtk3; + }); + inherit (shared) hasFeature; # function +in + +stdenv.mkDerivation rec { + inherit pname; + inherit (shared) + version + src + nativeBuildInputs + buildInputs + disallowedReferences + stripDebugList + doCheck + dontWrapPythonPrograms + dontWrapQtApps + meta + ; + passthru = shared.passthru // { + # Deps that are potentially overriden and are used inside GR plugins - the same version must + inherit boost volk; + } // lib.optionalAttrs (hasFeature "gr-uhd" features) { + inherit uhd; + } // lib.optionalAttrs (hasFeature "gr-qtgui" features) { + inherit (libsForQt5) qwt; + }; + cmakeFlags = shared.cmakeFlags + # From some reason, if these are not set, libcodec2 and gsm are not + # detected properly. NOTE: qradiolink needs libcodec2 to be detected in + # order to build, see https://github.com/qradiolink/qradiolink/issues/67 + ++ lib.optionals (hasFeature "gr-vocoder" features) [ + "-DLIBCODEC2_LIBRARIES=${codec2}/lib/libcodec2.so" + "-DLIBCODEC2_INCLUDE_DIRS=${codec2}/include" + "-DLIBCODEC2_HAS_FREEDV_API=ON" + "-DLIBGSM_LIBRARIES=${gsm}/lib/libgsm.so" + "-DLIBGSM_INCLUDE_DIRS=${gsm}/include/gsm" + ] + ++ lib.optionals (hasFeature "volk" features && volk != null) [ + "-DENABLE_INTERNAL_VOLK=OFF" + ] + ; + + postInstall = shared.postInstall + # This is the only python reference worth removing, if needed (3.7 doesn't + # set that reference). + + lib.optionalString (!hasFeature "python-support" features) '' + ${removeReferencesTo}/bin/remove-references-to -t ${python} $out/lib/cmake/gnuradio/GnuradioConfig.cmake + '' + ; + patches = [ + # Don't install python referencing files if python support is disabled. + # See: https://github.com/gnuradio/gnuradio/pull/3839 + (fetchpatch { + url = "https://github.com/gnuradio/gnuradio/commit/4a4fd570b398b0b50fe875fcf0eb9c9db2ea5c6e.diff"; + sha256 = "xz2E0ji6zfdOAhjfPecAcaVOIls1XP8JngLkBbBBW5Q="; + }) + (fetchpatch { + url = "https://github.com/gnuradio/gnuradio/commit/dbc8ad7e7361fddc7b1dbc267c07a776a3f9664b.diff"; + sha256 = "tQcCpcUbJv3yqAX8rSHN/pAuBq4ueEvoVo7sNzZGvf4="; + }) + # Needed to use boost 1.7x, see: + # https://github.com/gnuradio/gnuradio/issues/3720 + # https://github.com/gnuradio/gnuradio/pull/3967 + (fetchpatch { + url = "https://github.com/gnuradio/gnuradio/commit/cbcb968358fad56f3646619b258f18b0e6693a07.diff"; + sha256 = "1ajf4797f869lqv436xw61s29qdbn7f01i0970kfxv3yahd34p9v"; + }) + ]; +} diff --git a/pkgs/applications/radio/gnuradio/ais.nix b/pkgs/applications/radio/gnuradio/ais.nix deleted file mode 100644 index 8d6e8509772..00000000000 --- a/pkgs/applications/radio/gnuradio/ais.nix +++ /dev/null @@ -1,53 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, cmake -, pkg-config -, boost -, gnuradio -, makeWrapper -, cppunit -, gr-osmosdr -, log4cpp -, pythonSupport ? true -, python -, swig -, fetchpatch -}: - -stdenv.mkDerivation { - pname = "gr-ais"; - version = "2015-12-20"; - - src = fetchFromGitHub { - owner = "bistromath"; - repo = "gr-ais"; - rev = "cdc1f52745853f9c739c718251830eb69704b26e"; - sha256 = "1vl3kk8xr2mh5lf31zdld7yzmwywqffffah8iblxdzblgsdwxfl6"; - }; - - patches = [ - (fetchpatch { - url = "https://github.com/bistromath/gr-ais/commit/8502d0252a2a1a9b8d1a71795eaeb5d820684054.patch"; - sha256 = "1cwalphldvf6dbhzwz1gi53z0cb4921qsvlz4138q7m6dxccvssg"; - }) - ]; - - nativeBuildInputs = [ cmake makeWrapper pkg-config ]; - buildInputs = [ boost gnuradio cppunit gr-osmosdr log4cpp ] - ++ lib.optionals pythonSupport [ python swig ]; - - postInstall = '' - for prog in "$out"/bin/*; do - wrapProgram "$prog" --set PYTHONPATH $PYTHONPATH:$(toPythonPath "$out") - done - ''; - - meta = with lib; { - description = "Gnuradio block for ais"; - homepage = "https://github.com/bistromath/gr-ais"; - license = licenses.gpl3Plus; - platforms = platforms.linux ++ platforms.darwin; - maintainers = with maintainers; [ mog ]; - }; -} diff --git a/pkgs/applications/radio/gnuradio/default.nix b/pkgs/applications/radio/gnuradio/default.nix index 9bc1511968b..bcb2560144a 100644 --- a/pkgs/applications/radio/gnuradio/default.nix +++ b/pkgs/applications/radio/gnuradio/default.nix @@ -5,8 +5,8 @@ # Remove gcc and python references , removeReferencesTo , pkg-config +, volk , cppunit -, swig , orc , boost , log4cpp @@ -22,8 +22,13 @@ , uhd , SDL , gsl +, libsodium +, libsndfile +, libunwind , cppzmq , zeromq +# Needed only if qt-gui is disabled, from some reason +, icu # GUI related , gtk3 , pango @@ -38,16 +43,15 @@ , overrideSrc ? {} , pname ? "gnuradio" , versionAttr ? { - major = "3.8"; - minor = "2"; + major = "3.9"; + minor = "0"; patch = "0"; } -# Should be false on the release after 3.8.2.0 -, fetchSubmodules ? true +, fetchSubmodules ? false }: let - sourceSha256 = "1mnfwdy7w3160vi6110x2qkyq8l78qi8771zwak9n72bl7lhhpnf"; + sourceSha256 = "ZjQzioAuWrd8jsYOnLNH1mK4n9EbrjgvPX3mTzVFdLk="; featuresInfo = { # Needed always basic = { @@ -57,32 +61,26 @@ let orc ]; runtime = [ + volk boost log4cpp mpir - ]; + ] + # when gr-qtgui is disabled, icu needs to be included, otherwise + # building with boost 1.7x fails + ++ lib.optionals (!(hasFeature "gr-qtgui" features)) [ icu ]; pythonNative = with python.pkgs; [ Mako six ]; }; - # NOTE: Should be removed on the release after 3.8.2.0, see: - # https://github.com/gnuradio/gnuradio/commit/80c04479d - volk = { - cmakeEnableFlag = "VOLK"; - }; doxygen = { native = [ doxygen ]; cmakeEnableFlag = "DOXYGEN"; }; - sphinx = { - pythonNative = with python.pkgs; [ sphinx ]; - cmakeEnableFlag = "SPHINX"; - }; python-support = { pythonRuntime = [ python.pkgs.six ]; native = [ - swig python ]; cmakeEnableFlag = "PYTHON"; @@ -91,17 +89,23 @@ let native = [ cppunit ]; cmakeEnableFlag = "TESTING"; }; + post-install = { + cmakeEnableFlag = "POSTINSTALL"; + }; gnuradio-runtime = { cmakeEnableFlag = "GNURADIO_RUNTIME"; + pythonRuntime = [ + python.pkgs.pybind11 + ]; }; gr-ctrlport = { # Thrift support is not really working well, and even the patch they # recommend applying on 0.9.2 won't apply. See: - # https://github.com/gnuradio/gnuradio/blob/v3.8.2.0/gnuradio-runtime/lib/controlport/thrift/README - cmakeEnableFlag = "GR_CTRLPORT"; - native = [ - swig + # https://github.com/gnuradio/gnuradio/blob/v3.9.0.0/gnuradio-runtime/lib/controlport/thrift/README + runtime = [ + libunwind ]; + cmakeEnableFlag = "GR_CTRLPORT"; }; gnuradio-companion = { pythonRuntime = with python.pkgs; [ @@ -110,11 +114,15 @@ let numpy pygobject3 ]; + native = [ + python.pkgs.pytest + ]; runtime = [ gtk3 pango gobject-introspection cairo + libsndfile ]; cmakeEnableFlag = "GRC"; }; @@ -160,7 +168,9 @@ let cmakeEnableFlag = "GR_TRELLIS"; }; gr-uhd = { - runtime = [ uhd ]; + runtime = [ + uhd + ]; cmakeEnableFlag = "GR_UHD"; }; gr-utils = { @@ -173,22 +183,29 @@ let ]; cmakeEnableFlag = "GR_MODTOOL"; }; + gr-blocktool = { + cmakeEnableFlag = "GR_BLOCKTOOL"; + }; gr-video-sdl = { runtime = [ SDL ]; cmakeEnableFlag = "GR_VIDEO_SDL"; }; - gr-vocoder = { - runtime = [ codec2 gsm ]; - cmakeEnableFlag = "GR_VOCODER"; - }; + # codec2 and gsm support is broken with gr3.9: https://github.com/gnuradio/gnuradio/issues/4278 + # gr-vocoder = { + # runtime = [ codec2 gsm ]; + # cmakeEnableFlag = "GR_VOCODER"; + # }; gr-wavelet = { cmakeEnableFlag = "GR_WAVELET"; - runtime = [ gsl ]; + runtime = [ gsl libsodium ]; }; gr-zeromq = { runtime = [ cppzmq zeromq ]; cmakeEnableFlag = "GR_ZEROMQ"; }; + gr-network = { + cmakeEnableFlag = "GR_NETWORK"; + }; }; shared = (import ./shared.nix { inherit @@ -207,84 +224,42 @@ let qt = qt5; gtk = gtk3; }); - inherit (shared) - version - src - hasFeature # function - nativeBuildInputs - buildInputs - disallowedReferences - stripDebugList - passthru - doCheck - dontWrapPythonPrograms - dontWrapQtApps - meta - ; - cmakeFlags = shared.cmakeFlags - # From some reason, if these are not set, libcodec2 and gsm are not - # detected properly. NOTE: qradiolink needs libcodec2 to be detected in - # order to build, see https://github.com/qradiolink/qradiolink/issues/67 - ++ lib.optionals (hasFeature "gr-vocoder" features) [ - "-DLIBCODEC2_LIBRARIES=${codec2}/lib/libcodec2.so" - "-DLIBCODEC2_INCLUDE_DIRS=${codec2}/include" - "-DLIBCODEC2_HAS_FREEDV_API=ON" - "-DLIBGSM_LIBRARIES=${gsm}/lib/libgsm.so" - "-DLIBGSM_INCLUDE_DIRS=${gsm}/include/gsm" - ] - ; - - postInstall = shared.postInstall - # This is the only python reference worth removing, if needed (3.7 doesn't - # set that reference). - + lib.optionalString (!hasFeature "python-support" features) '' - ${removeReferencesTo}/bin/remove-references-to -t ${python} $out/lib/cmake/gnuradio/GnuradioConfig.cmake - '' - ; - preConfigure = "" - # If python-support is disabled, don't install volk's (git submodule) - # volk_modtool - it references python. - # - # NOTE: on the next release, volk will always be required to be installed - # externally (submodule removed upstream). Hence this hook will fail and - # we'll need to package volk while able to tell it to install or not - # install python referencing files. When we'll be there, this will help: - # https://github.com/gnuradio/volk/pull/404 - + lib.optionalString (!hasFeature "python-support" features) '' - sed -i -e "/python\/volk_modtool/d" volk/CMakeLists.txt - '' - ; - patches = [ - # Don't install python referencing files if python support is disabled. - # See: https://github.com/gnuradio/gnuradio/pull/3839 - (fetchpatch { - url = "https://github.com/gnuradio/gnuradio/commit/4a4fd570b398b0b50fe875fcf0eb9c9db2ea5c6e.diff"; - sha256 = "xz2E0ji6zfdOAhjfPecAcaVOIls1XP8JngLkBbBBW5Q="; - }) - (fetchpatch { - url = "https://github.com/gnuradio/gnuradio/commit/dbc8ad7e7361fddc7b1dbc267c07a776a3f9664b.diff"; - sha256 = "tQcCpcUbJv3yqAX8rSHN/pAuBq4ueEvoVo7sNzZGvf4="; - }) - ]; + inherit (shared) hasFeature; # function in stdenv.mkDerivation rec { - inherit - pname + inherit pname; + inherit (shared) version src nativeBuildInputs buildInputs cmakeFlags - preConfigure - # disallowedReferences + disallowedReferences stripDebugList - patches - postInstall - passthru doCheck dontWrapPythonPrograms dontWrapQtApps meta ; + passthru = shared.passthru // { + # Deps that are potentially overriden and are used inside GR plugins - the same version must + inherit boost volk; + } // lib.optionalAttrs (hasFeature "gr-uhd" features) { + inherit uhd; + } // lib.optionalAttrs (hasFeature "gr-qtgui" features) { + inherit (libsForQt5) qwt; + }; + + postInstall = shared.postInstall + # This is the only python reference worth removing, if needed. + # Even if python support is enabled, and we don't care about this + # reference, pybind's path is not properly set. See: + # https://github.com/gnuradio/gnuradio/issues/4380 + + lib.optionalString (!hasFeature "python-support" features) '' + ${removeReferencesTo}/bin/remove-references-to -t ${python} $out/lib/cmake/gnuradio/GnuradioConfig.cmake + ${removeReferencesTo}/bin/remove-references-to -t ${python} $(readlink -f $out/lib/libgnuradio-runtime.so) + ${removeReferencesTo}/bin/remove-references-to -t ${python.pkgs.pybind11} $out/lib/cmake/gnuradio/gnuradio-runtimeTargets.cmake + '' + ; } diff --git a/pkgs/applications/radio/gnuradio/gsm.nix b/pkgs/applications/radio/gnuradio/gsm.nix deleted file mode 100644 index 28c5045081b..00000000000 --- a/pkgs/applications/radio/gnuradio/gsm.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, boost, gnuradio, log4cpp -, makeWrapper, cppunit, libosmocore, gr-osmosdr -, pythonSupport ? true, python, swig -}: - -assert pythonSupport -> python != null && swig != null; - -stdenv.mkDerivation { - pname = "gr-gsm"; - version = "2016-08-25"; - - src = fetchFromGitHub { - owner = "ptrkrysik"; - repo = "gr-gsm"; - rev = "3ca05e6914ef29eb536da5dbec323701fbc2050d"; - sha256 = "13nnq927kpf91iqccr8db9ripy5czjl5jiyivizn6bia0bam2pvx"; - }; - - nativeBuildInputs = [ cmake pkg-config ]; - buildInputs = [ - boost gnuradio makeWrapper cppunit libosmocore gr-osmosdr log4cpp - ] ++ lib.optionals pythonSupport [ python swig ]; - - postInstall = '' - for prog in "$out"/bin/*; do - wrapProgram "$prog" --set PYTHONPATH $PYTHONPATH:${gr-osmosdr}/lib/${python.libPrefix}/site-packages:$(toPythonPath "$out") - done - ''; - - meta = with lib; { - description = "Gnuradio block for gsm"; - homepage = "https://github.com/ptrkrysik/gr-gsm"; - license = licenses.gpl3Plus; - platforms = platforms.linux; - maintainers = with maintainers; [ mog ]; - }; -} diff --git a/pkgs/applications/radio/gnuradio/limesdr.nix b/pkgs/applications/radio/gnuradio/limesdr.nix deleted file mode 100644 index afe3de64527..00000000000 --- a/pkgs/applications/radio/gnuradio/limesdr.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, boost, gnuradio -, pythonSupport ? true, python, swig, limesuite, log4cpp -} : - -assert pythonSupport -> python != null && swig != null; - -let - version = "2.0.0"; - -in stdenv.mkDerivation { - pname = "gr-limesdr"; - inherit version; - - src = fetchFromGitHub { - owner = "myriadrf"; - repo = "gr-limesdr"; - rev = "v${version}"; - sha256 = "0ldqvfwl0gil89l9s31fjf9d7ki0dk572i8vna336igfaz348ypq"; - }; - - nativeBuildInputs = [ - cmake - pkg-config - ] ++ lib.optionals pythonSupport [ swig ]; - - buildInputs = [ - boost gnuradio limesuite log4cpp - ] ++ lib.optionals pythonSupport [ python ]; - - - meta = with lib; { - description = "Gnuradio source and sink blocks for LimeSDR"; - homepage = "https://wiki.myriadrf.org/Gr-limesdr_Plugin_for_GNURadio"; - license = licenses.mit; - platforms = platforms.linux; - maintainers = [ maintainers.markuskowa ]; - }; -} diff --git a/pkgs/applications/radio/gnuradio/osmosdr.nix b/pkgs/applications/radio/gnuradio/osmosdr.nix deleted file mode 100644 index 436c4309a5b..00000000000 --- a/pkgs/applications/radio/gnuradio/osmosdr.nix +++ /dev/null @@ -1,45 +0,0 @@ -{ lib, stdenv, fetchgit, cmake, pkg-config, makeWrapper -, boost -, pythonSupport ? true, python, swig -, airspy -, gnuradio -, hackrf -, libbladeRF -, rtl-sdr -, soapysdr-with-plugins -, uhd -, log4cpp -}: - -assert pythonSupport -> python != null && swig != null; - -stdenv.mkDerivation rec { - pname = "gr-osmosdr"; - version = "0.1.5"; - - src = fetchgit { - url = "git://git.osmocom.org/gr-osmosdr"; - rev = "v${version}"; - sha256 = "0bf9bnc1c3c4yqqqgmg3nhygj6rcfmyk6pybi27f7461d2cw1drv"; - }; - - nativeBuildInputs = [ cmake makeWrapper pkg-config ]; - buildInputs = [ - boost log4cpp airspy gnuradio hackrf libbladeRF rtl-sdr uhd - ] ++ lib.optionals stdenv.isLinux [ soapysdr-with-plugins ] - ++ lib.optionals pythonSupport [ python swig python.pkgs.cheetah ]; - - postInstall = '' - for prog in "$out"/bin/*; do - wrapProgram "$prog" --set PYTHONPATH $PYTHONPATH:$(toPythonPath "$out") - done - ''; - - meta = with lib; { - description = "Gnuradio block for OsmoSDR and rtl-sdr"; - homepage = "https://sdr.osmocom.org/trac/wiki/GrOsmoSDR"; - license = licenses.gpl3Plus; - platforms = platforms.linux ++ platforms.darwin; - maintainers = with maintainers; [ bjornfor ]; - }; -} diff --git a/pkgs/applications/radio/gnuradio/rds.nix b/pkgs/applications/radio/gnuradio/rds.nix deleted file mode 100644 index 4f15f2a961e..00000000000 --- a/pkgs/applications/radio/gnuradio/rds.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, boost, gnuradio, log4cpp -, makeWrapper, pythonSupport ? true, python, swig -}: - -assert pythonSupport -> python != null && swig != null; - -stdenv.mkDerivation rec { - pname = "gr-rds"; - version = "1.1.0"; - - src = fetchFromGitHub { - owner = "bastibl"; - repo = "gr-rds"; - rev = "v${version}"; - sha256 = "0jkzchvw0ivcxsjhi1h0mf7k13araxf5m4wi5v9xdgqxvipjzqfy"; - }; - - nativeBuildInputs = [ cmake pkg-config ]; - buildInputs = [ - boost gnuradio makeWrapper log4cpp - ] ++ lib.optionals pythonSupport [ python swig ]; - - postInstall = '' - for prog in "$out"/bin/*; do - wrapProgram "$prog" --set PYTHONPATH $PYTHONPATH:$(toPythonPath "$out") - done - ''; - - meta = with lib; { - description = "Gnuradio block for radio data system"; - homepage = "https://github.com/bastibl/gr-rds"; - license = licenses.gpl2Plus; - platforms = platforms.linux ++ platforms.darwin; - maintainers = with maintainers; [ mog ]; - }; -} diff --git a/pkgs/applications/radio/gnuradio/shared.nix b/pkgs/applications/radio/gnuradio/shared.nix index 9b354d5b960..f8ea2f0b160 100644 --- a/pkgs/applications/radio/gnuradio/shared.nix +++ b/pkgs/applications/radio/gnuradio/shared.nix @@ -85,9 +85,6 @@ rec { ; postInstall = "" # Gcc references - + lib.optionalString (hasFeature "volk" features) '' - ${removeReferencesTo}/bin/remove-references-to -t ${stdenv.cc} $(readlink -f $out/lib/libvolk.so) - '' + lib.optionalString (hasFeature "gnuradio-runtime" features) '' ${removeReferencesTo}/bin/remove-references-to -t ${stdenv.cc} $(readlink -f $out/lib/libgnuradio-runtime.so) '' @@ -103,9 +100,11 @@ rec { features featuresInfo python - qt - gtk ; + } // lib.optionalAttrs (hasFeature "gr-qtgui" features) { + inherit qt; + } // lib.optionalAttrs (hasFeature "gnuradio-companion" features) { + inherit gtk; }; # Wrapping is done with an external wrapper dontWrapPythonPrograms = true; diff --git a/pkgs/applications/radio/gnuradio/wrapper.nix b/pkgs/applications/radio/gnuradio/wrapper.nix index aaf74abc2c5..d255b199bc9 100644 --- a/pkgs/applications/radio/gnuradio/wrapper.nix +++ b/pkgs/applications/radio/gnuradio/wrapper.nix @@ -1,9 +1,16 @@ { lib , stdenv +# The unwrapped gnuradio derivation , unwrapped +# If it's a minimal build, we don't want to wrap it with lndir and +# wrapProgram.. +, wrap ? true +# For the wrapper , makeWrapper # For lndir , xorg +# To define a the gnuradio.pkgs scope +, newScope # For Emulating wrapGAppsHook , gsettings-desktop-schemas , glib @@ -37,12 +44,16 @@ let [] ) ) unwrapped.featuresInfo) - ++ lib.optionals (unwrapped.hasFeature "python-support" unwrapped.features) [ - # Add unwrapped itself as a python module - (unwrapped.python.pkgs.toPythonModule unwrapped) - ] + ++ lib.optionals + (unwrapped.hasFeature "python-support" unwrapped.features) + ( + # Add unwrapped itself as a python module + [ (unwrapped.python.pkgs.toPythonModule unwrapped) ] + # Add all extraPackages as python modules + ++ (builtins.map unwrapped.python.pkgs.toPythonModule extraPackages) + ) ; - python3Env = unwrapped.python.withPackages(ps: pythonPkgs); + pythonEnv = unwrapped.python.withPackages(ps: pythonPkgs); name = (lib.appendToName "wrapped" unwrapped).name; makeWrapperArgs = builtins.concatStringsSep " " ([ @@ -88,48 +99,84 @@ let (if unwrapped.versionAttr.major == "3.8" then [ "--prefix" "QT_PLUGIN_PATH" ":" - "${lib.getBin unwrapped.qt.qtbase}/${unwrapped.qt.qtbase.qtPluginPrefix}" + "${ + lib.makeSearchPath + unwrapped.qt.qtbase.qtPluginPrefix + (builtins.map lib.getBin [ + unwrapped.qt.qtbase + unwrapped.qt.qtwayland + ]) + }" "--prefix" "QML2_IMPORT_PATH" ":" - "${lib.getBin unwrapped.qt.qtbase}/${unwrapped.qt.qtbase.qtQmlPrefix}" + "${ + lib.makeSearchPath + unwrapped.qt.qtbase.qtQmlPrefix + (builtins.map lib.getBin [ + unwrapped.qt.qtbase + unwrapped.qt.qtwayland + ]) + }" ] else - # TODO: Add here qt4 related environment for 3.7? + # Add here qt4 related environment for 3.7? [ ] ) ++ extraMakeWrapperArgs ); -in -stdenv.mkDerivation { - inherit name; - buildInputs = [ - makeWrapper - xorg.lndir - ]; - - passthru = { - inherit python3Env pythonPkgs unwrapped; + packages = import ../../../top-level/gnuradio-packages.nix { + inherit lib stdenv newScope; + gnuradio = unwrapped; }; - - buildCommand = '' - mkdir $out - cd $out - lndir -silent ${unwrapped} - for i in $out/bin/*; do - if [[ ! -x "$i" ]]; then - continue - fi - cp -L "$i" "$i".tmp - mv -f "$i".tmp "$i" - if head -1 "$i" | grep -q ${unwrapped.python}; then - substituteInPlace "$i" \ - --replace ${unwrapped.python} ${python3Env} - fi - wrapProgram "$i" ${makeWrapperArgs} - done - ''; - - inherit (unwrapped) meta; -} + passthru = unwrapped.passthru // { + inherit + pythonEnv + pythonPkgs + unwrapped + ; + pkgs = packages; + }; + self = if wrap then + stdenv.mkDerivation { + inherit name passthru; + buildInputs = [ + makeWrapper + xorg.lndir + ]; + buildCommand = '' + mkdir $out + cd $out + lndir -silent ${unwrapped} + ${lib.optionalString + (extraPackages != []) + (builtins.concatStringsSep "\n" + (builtins.map (pkg: '' + if [[ -d ${lib.getBin pkg}/bin/ ]]; then + lndir -silent ${pkg}/bin ./bin + fi + '') extraPackages) + ) + } + for i in $out/bin/*; do + if [[ ! -x "$i" ]]; then + continue + fi + cp -L "$i" "$i".tmp + mv -f "$i".tmp "$i" + if head -1 "$i" | grep -q ${unwrapped.python}; then + substituteInPlace "$i" \ + --replace ${unwrapped.python} ${pythonEnv} + fi + wrapProgram "$i" ${makeWrapperArgs} + done + ''; + inherit (unwrapped) meta; + } + else + unwrapped.overrideAttrs(_: { + inherit passthru; + }) + ; +in self diff --git a/pkgs/applications/radio/gqrx/default.nix b/pkgs/applications/radio/gqrx/default.nix index 217818f67c2..cccdff1f3cc 100644 --- a/pkgs/applications/radio/gqrx/default.nix +++ b/pkgs/applications/radio/gqrx/default.nix @@ -1,13 +1,23 @@ -{ lib, fetchFromGitHub, cmake, qtbase, qtsvg, gnuradio, boost, gr-osmosdr -, mkDerivation +{ lib +, fetchFromGitHub +, cmake +, pkg-config +, qt5 +, gnuradio3_8Minimal +, log4cpp +, mpir +, fftwFloat +, alsaLib +, libjack2 # drivers (optional): -, rtl-sdr, hackrf +, rtl-sdr +, hackrf , pulseaudioSupport ? true, libpulseaudio }: assert pulseaudioSupport -> libpulseaudio != null; -mkDerivation rec { +gnuradio3_8Minimal.pkgs.mkDerivation rec { pname = "gqrx"; version = "2.14.4"; @@ -18,9 +28,23 @@ mkDerivation rec { sha256 = "sha256-mMaxu0jq2GaNLWjLsJQXx+zCxtyiCAZQJJZ8GJtnllQ="; }; - nativeBuildInputs = [ cmake ]; + nativeBuildInputs = [ + cmake + pkg-config + qt5.wrapQtAppsHook + ]; buildInputs = [ - qtbase qtsvg gnuradio boost gr-osmosdr rtl-sdr hackrf + log4cpp + mpir + fftwFloat + alsaLib + libjack2 + gnuradio3_8Minimal.unwrapped.boost + qt5.qtbase + qt5.qtsvg + gnuradio3_8Minimal.pkgs.osmosdr + rtl-sdr + hackrf ] ++ lib.optionals pulseaudioSupport [ libpulseaudio ]; postInstall = '' diff --git a/pkgs/applications/radio/inspectrum/default.nix b/pkgs/applications/radio/inspectrum/default.nix index 37131a686b5..9d61ab4b601 100644 --- a/pkgs/applications/radio/inspectrum/default.nix +++ b/pkgs/applications/radio/inspectrum/default.nix @@ -1,17 +1,14 @@ { lib -, mkDerivation +, gnuradio3_8Minimal , fetchFromGitHub , pkg-config , cmake -, boost , fftwFloat -, gnuradio +, qt5 , liquid-dsp -, qtbase -, wrapQtAppsHook }: -mkDerivation rec { +gnuradio3_8Minimal.pkgs.mkDerivation rec { pname = "inspectrum"; version = "0.2.3"; @@ -22,13 +19,15 @@ mkDerivation rec { sha256 = "1x6nyn429pk0f7lqzskrgsbq09mq5787xd4piic95add6n1cc355"; }; - nativeBuildInputs = [ cmake pkg-config wrapQtAppsHook ]; + nativeBuildInputs = [ + cmake + qt5.wrapQtAppsHook + pkg-config + ]; buildInputs = [ fftwFloat - boost - gnuradio liquid-dsp - qtbase + qt5.qtbase ]; meta = with lib; { diff --git a/pkgs/applications/radio/qradiolink/default.nix b/pkgs/applications/radio/qradiolink/default.nix index 24c5f987f17..2dbd9f1aba9 100644 --- a/pkgs/applications/radio/qradiolink/default.nix +++ b/pkgs/applications/radio/qradiolink/default.nix @@ -1,51 +1,71 @@ -{ lib, stdenv, fetchFromGitHub, alsaLib, boost -, qt4, libpulseaudio, codec2, libconfig -, gnuradio, gr-osmosdr, gsm -, libopus, libjpeg, protobuf, qwt, speex -} : +{ lib +, fetchFromGitHub +, libpulseaudio +, libconfig +# Needs a gnuradio built with qt gui support +, gnuradio3_8 +# Not gnuradioPackages' +, codec2 +, log4cpp +, gmp +, gsm +, libopus +, libjpeg +, libsndfile +, libftdi +, protobuf +, speex +, speexdsp +}: -let - version = "0.5.0"; - -in stdenv.mkDerivation { +gnuradio3_8.pkgs.mkDerivation rec { pname = "qradiolink"; - inherit version; + version = "0.8.5-2"; src = fetchFromGitHub { - owner = "kantooon"; + owner = "qradiolink"; repo = "qradiolink"; rev = version; - sha256 = "0xhg5zhjznmls5m3rhpk1qx0dipxmca12s85w15d0i7qwva2f1gi"; + sha256 = "MgHfKR3AJW3pIN9oCBr4BWxk1fGSCpLmMzjxvuTmuFA="; }; preBuild = '' - cd ext + cd src/ext protoc --cpp_out=. Mumble.proto protoc --cpp_out=. QRadioLink.proto - cd .. + cd ../.. qmake ''; installPhase = '' - mkdir -p $out/bin - cp qradiolink $out/bin + install -D qradiolink $out/bin/qradiolink + install -Dm644 src/res/icon.png $out/share/pixmaps/qradiolink.png + install -Dm644 qradiolink.desktop $out/share/applications/qradiolink.desktop ''; buildInputs = [ - qt4 - alsaLib - boost - libpulseaudio + gnuradio3_8.unwrapped.boost codec2 + log4cpp + gmp + libpulseaudio libconfig gsm - gnuradio - gr-osmosdr + gnuradio3_8.pkgs.osmosdr libopus libjpeg - protobuf speex - qwt + speexdsp + gnuradio3_8.qt.qtbase + gnuradio3_8.qt.qtmultimedia + libftdi + libsndfile + gnuradio3_8.qwt + ]; + nativeBuildInputs = [ + protobuf + gnuradio3_8.qt.qmake + gnuradio3_8.qt.wrapQtAppsHook ]; enableParallelBuilding = true; diff --git a/pkgs/applications/radio/uhd/3.5.nix b/pkgs/applications/radio/uhd/3.5.nix new file mode 100644 index 00000000000..d913927a7b9 --- /dev/null +++ b/pkgs/applications/radio/uhd/3.5.nix @@ -0,0 +1,159 @@ +{ lib +, stdenv +, fetchurl +, fetchFromGitHub +, cmake +, pkg-config +# See https://files.ettus.com/manual_archive/v3.15.0.0/html/page_build_guide.html for dependencies explanations +, boost +, enableLibuhd_C_api ? true +# requires numpy +, enableLibuhd_Python_api ? false +, python3 +, enableExamples ? false +, enableUtils ? false +, enableLiberio ? false +, liberio +, libusb1 +, enableDpdk ? false +, dpdk +# Devices +, enableOctoClock ? true +, enableMpmd ? true +, enableB100 ? true +, enableB200 ? true +, enableUsrp1 ? true +, enableUsrp2 ? true +, enableX300 ? true +, enableN230 ? true +, enableN300 ? true +, enableN320 ? true +, enableE300 ? true +, enableE320 ? true +}: + +let + onOffBool = b: if b then "ON" else "OFF"; + inherit (lib) optionals; +in + +stdenv.mkDerivation rec { + pname = "uhd"; + # UHD seems to use three different version number styles: x.y.z, xxx_yyy_zzz + # and xxx.yyy.zzz. Hrmpf... style keeps changing + version = "3.15.0.0"; + + src = fetchFromGitHub { + owner = "EttusResearch"; + repo = "uhd"; + rev = "v${version}"; + sha256 = "0jknln88a69fh244670nb7qrflbyv0vvdxfddb5g8ncpb6hcg8qf"; + }; + # Firmware images are downloaded (pre-built) from the respective release on Github + uhdImagesSrc = fetchurl { + url = "https://github.com/EttusResearch/uhd/releases/download/v${version}/uhd-images_${version}.tar.xz"; + sha256 = "1fir1a13ac07mqhm4sr34cixiqj2difxq0870qv1wr7a7cbfw6vp"; + }; + + cmakeFlags = [ + "-DENABLE_LIBUHD=ON" + "-DENABLE_USB=ON" + "-DENABLE_TESTS=ON" # This installs tests as well so we delete them via postPhases + "-DENABLE_EXAMPLES=${onOffBool enableExamples}" + "-DENABLE_UTILS=${onOffBool enableUtils}" + "-DENABLE_LIBUHD_C_API=${onOffBool enableLibuhd_C_api}" + "-DENABLE_LIBUHD_PYTHON_API=${onOffBool enableLibuhd_Python_api}" + "-DENABLE_LIBERIO=${onOffBool enableLiberio}" + "-DENABLE_DPDK=${onOffBool enableDpdk}" + # Devices + "-DENABLE_OCTOCLOCK=${onOffBool enableOctoClock}" + "-DENABLE_MPMD=${onOffBool enableMpmd}" + "-DENABLE_B100=${onOffBool enableB100}" + "-DENABLE_B200=${onOffBool enableB200}" + "-DENABLE_USRP1=${onOffBool enableUsrp1}" + "-DENABLE_USRP2=${onOffBool enableUsrp2}" + "-DENABLE_X300=${onOffBool enableX300}" + "-DENABLE_N230=${onOffBool enableN230}" + "-DENABLE_N300=${onOffBool enableN300}" + "-DENABLE_N320=${onOffBool enableN320}" + "-DENABLE_E300=${onOffBool enableE300}" + "-DENABLE_E320=${onOffBool enableE320}" + ] + # TODO: Check if this still needed + # ABI differences GCC 7.1 + # /nix/store/wd6r25miqbk9ia53pp669gn4wrg9n9cj-gcc-7.3.0/include/c++/7.3.0/bits/vector.tcc:394:7: note: parameter passing for argument of type 'std::vector::iterator {aka __gnu_cxx::__normal_iterator >}' changed in GCC 7.1 + ++ [ (lib.optionalString stdenv.isAarch32 "-DCMAKE_CXX_FLAGS=-Wno-psabi") ] + ; + + # Python + Mako are always required for the build itself but not necessary for runtime. + pythonEnv = python3.withPackages (ps: with ps; [ Mako ] + ++ optionals (enableLibuhd_Python_api) [ numpy setuptools ] + ++ optionals (enableUtils) [ requests six ] + ); + + nativeBuildInputs = [ + cmake + pkg-config + ] + # If both enableLibuhd_Python_api and enableUtils are off, we don't need + # pythonEnv in buildInputs as it's a 'build' dependency and not a runtime + # dependency + ++ optionals (!enableLibuhd_Python_api && !enableUtils) [ pythonEnv ] + ; + buildInputs = [ + boost + libusb1 + ] + # However, if enableLibuhd_Python_api *or* enableUtils is on, we need + # pythonEnv for runtime as well. The utilities' runtime dependencies are + # handled at the environment + ++ optionals (enableLibuhd_Python_api || enableUtils) [ pythonEnv ] + ++ optionals (enableLiberio) [ liberio ] + ++ optionals (enableDpdk) [ dpdk ] + ; + + doCheck = true; + + # Build only the host software + preConfigure = "cd host"; + # TODO: Check if this still needed, perhaps relevant: + # https://files.ettus.com/manual_archive/v3.15.0.0/html/page_build_guide.html#build_instructions_unix_arm + patches = if stdenv.isAarch32 then ./neon.patch else null; + + postPhases = [ "installFirmware" "removeInstalledTests" ] + ++ optionals (enableUtils) [ "moveUdevRules" ] + ; + + # UHD expects images in `$CMAKE_INSTALL_PREFIX/share/uhd/images` + installFirmware = '' + mkdir -p "$out/share/uhd/images" + tar --strip-components=1 -xvf "${uhdImagesSrc}" -C "$out/share/uhd/images" + ''; + + # -DENABLE_TESTS=ON installs the tests, we don't need them in the output + removeInstalledTests = '' + rm -r $out/lib/uhd/tests + ''; + + # Moves the udev rules to the standard location, needed only if utils are + # enabled + moveUdevRules = '' + mkdir -p $out/lib/udev/rules.d + mv $out/lib/uhd/utils/uhd-usrp.rules $out/lib/udev/rules.d/ + ''; + + meta = with lib; { + description = "USRP Hardware Driver (for Software Defined Radio)"; + longDescription = '' + The USRP Hardware Driver (UHD) software is the hardware driver for all + USRP (Universal Software Radio Peripheral) devices. + + USRP devices are designed and sold by Ettus Research, LLC and its parent + company, National Instruments. + ''; + homepage = "https://uhd.ettus.com/"; + license = licenses.gpl3Plus; + platforms = platforms.linux ++ platforms.darwin; + maintainers = with maintainers; [ bjornfor fpletz tomberek ]; + }; +} diff --git a/pkgs/applications/radio/uhd/default.nix b/pkgs/applications/radio/uhd/default.nix index bafb2f637df..9f2f39aab2c 100644 --- a/pkgs/applications/radio/uhd/default.nix +++ b/pkgs/applications/radio/uhd/default.nix @@ -1,4 +1,5 @@ -{ lib, stdenv +{ lib +, stdenv , fetchurl , fetchFromGitHub , cmake @@ -8,14 +9,14 @@ , enableLibuhd_C_api ? true # requires numpy , enableLibuhd_Python_api ? false -, python3 ? null +, python3 , enableExamples ? false , enableUtils ? false , enableLiberio ? false -, liberio ? null -, libusb1 ? null +, liberio +, libusb1 , enableDpdk ? false -, dpdk ? null +, dpdk # Devices , enableOctoClock ? true , enableMpmd ? true @@ -40,18 +41,18 @@ stdenv.mkDerivation rec { pname = "uhd"; # UHD seems to use three different version number styles: x.y.z, xxx_yyy_zzz # and xxx.yyy.zzz. Hrmpf... style keeps changing - version = "3.15.0.0"; + version = "4.0.0.0"; src = fetchFromGitHub { owner = "EttusResearch"; repo = "uhd"; rev = "v${version}"; - sha256 = "0jknln88a69fh244670nb7qrflbyv0vvdxfddb5g8ncpb6hcg8qf"; + sha256 = "NCyiI4pIPw0nBRFdUGpgZ/x2mWz+Qm78ZGACUnSbGSs="; }; # Firmware images are downloaded (pre-built) from the respective release on Github uhdImagesSrc = fetchurl { url = "https://github.com/EttusResearch/uhd/releases/download/v${version}/uhd-images_${version}.tar.xz"; - sha256 = "1fir1a13ac07mqhm4sr34cixiqj2difxq0870qv1wr7a7cbfw6vp"; + sha256 = "Xfx0bsHUQ5+Dp+xk0sVWWP83oyXQcUH5AX4PNEE7fY4="; }; cmakeFlags = [ diff --git a/pkgs/applications/video/kodi/default.nix b/pkgs/applications/video/kodi/default.nix index 0dca33303c5..55ba84cc454 100644 --- a/pkgs/applications/video/kodi/default.nix +++ b/pkgs/applications/video/kodi/default.nix @@ -1,250 +1,14 @@ -{ stdenv, lib, fetchFromGitHub, autoconf, automake, libtool, makeWrapper -, pkg-config, cmake, gnumake, yasm, python3Packages -, libgcrypt, libgpgerror, libunistring -, boost, avahi, lame -, gettext, pcre-cpp, yajl, fribidi, which -, openssl, gperf, tinyxml2, taglib, libssh, swig, jre_headless -, gtest, ncurses, spdlog -, libxml2, systemd -, alsaLib, libGLU, libGL, fontconfig, freetype, ftgl -, libjpeg, libpng, libtiff -, libmpeg2, libsamplerate, libmad -, libogg, libvorbis, flac, libxslt -, lzo, libcdio, libmodplug, libass, libbluray -, sqlite, libmysqlclient, nasm, gnutls, libva, libdrm -, curl, bzip2, zip, unzip, glxinfo -, libcec, libcec_platform, dcadec, libuuid -, libcrossguid, libmicrohttpd -, bluez, doxygen, giflib, glib, harfbuzz, lcms2, libidn, libpthreadstubs, libtasn1 -, libplist, p11-kit, zlib, flatbuffers, fmt, fstrcmp, rapidjson -, lirc -, x11Support ? true, libX11, xorgproto, libXt, libXmu, libXext, libXinerama, libXrandr, libXtst, libXfixes, xdpyinfo, libXdmcp -, dbusSupport ? true, dbus ? null -, joystickSupport ? true, cwiid ? null -, nfsSupport ? true, libnfs ? null -, pulseSupport ? true, libpulseaudio ? null -, rtmpSupport ? true, rtmpdump ? null -, sambaSupport ? true, samba ? null -, udevSupport ? true, udev ? null -, usbSupport ? false, libusb-compat-0_1 ? null -, vdpauSupport ? true, libvdpau ? null -, useWayland ? false, wayland ? null, wayland-protocols ? null -, waylandpp ? null, libxkbcommon ? null -, useGbm ? false, mesa ? null, libinput ? null -, buildPackages -}: - -assert dbusSupport -> dbus != null; -assert nfsSupport -> libnfs != null; -assert pulseSupport -> libpulseaudio != null; -assert rtmpSupport -> rtmpdump != null; -assert sambaSupport -> samba != null; -assert udevSupport -> udev != null; -assert usbSupport -> libusb-compat-0_1 != null && ! udevSupport; # libusb-compat-0_1 won't be used if udev is avaliable -assert vdpauSupport -> libvdpau != null; -assert useWayland -> wayland != null && wayland-protocols != null && waylandpp != null && libxkbcommon != null; -assert useGbm || useWayland || x11Support; - +{ callPackage, ... } @ args: let - kodiReleaseDate = "20210219"; - kodiVersion = "19.0"; - rel = "Matrix"; - - kodi_src = fetchFromGitHub { - owner = "xbmc"; - repo = "xbmc"; - rev = "${kodiVersion}-${rel}"; - sha256 = "097dg6a7v4ia85jx1pmlpwzdpqcqxlrmniqd005q73zvgj67zc2p"; - }; - - ffmpeg = stdenv.mkDerivation rec { - pname = "kodi-ffmpeg"; - version = "4.3.1"; - src = fetchFromGitHub { - owner = "xbmc"; - repo = "FFmpeg"; - rev = "${version}-${rel}-Beta1"; - sha256 = "1c5rwlxn6xj501iw7masdv2p6wb9rkmd299lmlkx97sw1kvxvg2w"; + unwrapped = callPackage ./unwrapped.nix (removeAttrs args [ "callPackage" ]); + kodiPackages = callPackage ./packages.nix { kodi = unwrapped; }; +in + unwrapped.overrideAttrs (oldAttrs: { + passthru = oldAttrs.passthru // { + packages = kodiPackages; + withPackages = func: callPackage ./wrapper.nix { + kodi = unwrapped; + addons = kodiPackages.requiredKodiAddons (func kodiPackages); + }; }; - preConfigure = '' - cp ${kodi_src}/tools/depends/target/ffmpeg/{CMakeLists.txt,*.cmake} . - sed -i 's/ --cpu=''${CPU}//' CMakeLists.txt - sed -i 's/--strip=''${CMAKE_STRIP}/--strip=''${CMAKE_STRIP} --ranlib=''${CMAKE_RANLIB}/' CMakeLists.txt - ''; - cmakeFlags = lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ - "-DCROSSCOMPILING=ON" - "-DCPU=${stdenv.hostPlatform.parsed.cpu.name}" - "-DOS=${stdenv.hostPlatform.parsed.kernel.name}" - "-DPKG_CONFIG_EXECUTABLE=pkg-config" - ]; - buildInputs = [ libidn libtasn1 p11-kit zlib libva ] - ++ lib.optional vdpauSupport libvdpau; - nativeBuildInputs = [ cmake nasm pkg-config gnutls ]; - }; - - # We can build these externally but FindLibDvd.cmake forces us to build it - # them, so we currently just use them for the src. - libdvdcss = fetchFromGitHub { - owner = "xbmc"; - repo = "libdvdcss"; - rev = "1.4.2-${rel}-Beta-5"; - sha256 = "0j41ydzx0imaix069s3z07xqw9q95k7llh06fc27dcn6f7b8ydyl"; - }; - - libdvdnav = fetchFromGitHub { - owner = "xbmc"; - repo = "libdvdnav"; - rev = "6.0.0-${rel}-Alpha-3"; - sha256 = "0qwlf4lgahxqxk1r2pzl866mi03pbp7l1fc0rk522sc0ak2s9jhb"; - }; - - libdvdread = fetchFromGitHub { - owner = "xbmc"; - repo = "libdvdread"; - rev = "6.0.0-${rel}-Alpha-3"; - sha256 = "1xxn01mhkdnp10cqdr357wx77vyzfb5glqpqyg8m0skyi75aii59"; - }; - - kodi_platforms = - lib.optional useGbm "gbm" ++ - lib.optional useWayland "wayland" ++ - lib.optional x11Support "x11" - ; - -in stdenv.mkDerivation { - name = "kodi-${lib.optionalString useWayland "wayland-"}${kodiVersion}"; - - src = kodi_src; - - buildInputs = [ - gnutls libidn libtasn1 nasm p11-kit - libxml2 python3Packages.python - boost libmicrohttpd - gettext pcre-cpp yajl fribidi libva libdrm - openssl gperf tinyxml2 taglib libssh - gtest ncurses spdlog - alsaLib libGL libGLU fontconfig freetype ftgl - libjpeg libpng libtiff - libmpeg2 libsamplerate libmad - libogg libvorbis flac libxslt systemd - lzo libcdio libmodplug libass libbluray - sqlite libmysqlclient avahi lame - curl bzip2 zip glxinfo - libcec libcec_platform dcadec libuuid - libgcrypt libgpgerror libunistring - libcrossguid libplist - bluez giflib glib harfbuzz lcms2 libpthreadstubs - ffmpeg flatbuffers fmt fstrcmp rapidjson - lirc - ] - ++ lib.optional x11Support [ - libX11 xorgproto libXt libXmu libXext.dev libXdmcp - libXinerama libXrandr.dev libXtst libXfixes - ] - ++ lib.optional dbusSupport dbus - ++ lib.optional joystickSupport cwiid - ++ lib.optional nfsSupport libnfs - ++ lib.optional pulseSupport libpulseaudio - ++ lib.optional rtmpSupport rtmpdump - ++ lib.optional sambaSupport samba - ++ lib.optional udevSupport udev - ++ lib.optional usbSupport libusb-compat-0_1 - ++ lib.optional vdpauSupport libvdpau - ++ lib.optionals useWayland [ - wayland - waylandpp.dev - wayland-protocols - # Not sure why ".dev" is needed here, but CMake doesn't find libxkbcommon otherwise - libxkbcommon.dev - ] - ++ lib.optional useGbm [ - libxkbcommon.dev - mesa.dev - libinput.dev - ]; - - nativeBuildInputs = [ - cmake - doxygen - makeWrapper - which - pkg-config gnumake - autoconf automake libtool # still needed for some components. Check if that is the case with 19.0 - jre_headless yasm gettext python3Packages.python flatbuffers - - # for TexturePacker - giflib zlib libpng libjpeg lzo - ] ++ lib.optionals useWayland [ wayland-protocols waylandpp.bin ]; - - depsBuildBuild = [ - buildPackages.stdenv.cc - ]; - - cmakeFlags = [ - "-DAPP_RENDER_SYSTEM=${if useGbm then "gles" else "gl"}" - "-Dlibdvdcss_URL=${libdvdcss}" - "-Dlibdvdnav_URL=${libdvdnav}" - "-Dlibdvdread_URL=${libdvdread}" - "-DGIT_VERSION=${kodiReleaseDate}" - "-DENABLE_EVENTCLIENTS=ON" - "-DENABLE_INTERNAL_CROSSGUID=OFF" - "-DENABLE_OPTICAL=ON" - "-DLIRC_DEVICE=/run/lirc/lircd" - "-DSWIG_EXECUTABLE=${buildPackages.swig}/bin/swig" - "-DFLATBUFFERS_FLATC_EXECUTABLE=${buildPackages.flatbuffers}/bin/flatc" - "-DPYTHON_EXECUTABLE=${buildPackages.python3Packages.python}/bin/python" - ] ++ lib.optional useWayland [ - "-DWAYLANDPP_SCANNER=${buildPackages.waylandpp}/bin/wayland-scanner++" - ]; - - # 14 tests fail but the biggest issue is that every test takes 30 seconds - - # I'm guessing there is a thing waiting to time out - doCheck = false; - - preConfigure = '' - cmakeFlagsArray+=("-DCORE_PLATFORM_NAME=${lib.concatStringsSep " " kodi_platforms}") - '' + lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) '' - # Need these tools on the build system when cross compiling, - # hacky, but have found no other way. - CXX=${stdenv.cc.targetPrefix}c++ LD=ld make -C tools/depends/native/JsonSchemaBuilder - cmakeFlags+=" -DWITH_JSONSCHEMABUILDER=$PWD/tools/depends/native/JsonSchemaBuilder/bin" - - CXX=${stdenv.cc.targetPrefix}c++ LD=ld make EXTRA_CONFIGURE= -C tools/depends/native/TexturePacker - cmakeFlags+=" -DWITH_TEXTUREPACKER=$PWD/tools/depends/native/TexturePacker/bin" - ''; - - postPatch = '' - substituteInPlace xbmc/platform/posix/PosixTimezone.cpp \ - --replace 'usr/share/zoneinfo' 'etc/zoneinfo' - ''; - - postInstall = '' - for p in $(ls $out/bin/) ; do - wrapProgram $out/bin/$p \ - --prefix PATH ":" "${lib.makeBinPath ([ python3Packages.python glxinfo ] ++ lib.optional x11Support xdpyinfo ++ lib.optional sambaSupport samba)}" \ - --prefix LD_LIBRARY_PATH ":" "${lib.makeLibraryPath - ([ curl systemd libmad libvdpau libcec libcec_platform libass ] - ++ lib.optional nfsSupport libnfs - ++ lib.optional rtmpSupport rtmpdump)}" - done - - substituteInPlace $out/share/xsessions/kodi.desktop \ - --replace kodi-standalone $out/bin/kodi-standalone - ''; - - doInstallCheck = true; - - installCheckPhase = "$out/bin/kodi --version"; - - passthru = { - pythonPackages = python3Packages; - }; - - meta = with lib; { - description = "Media center"; - homepage = "https://kodi.tv/"; - license = licenses.gpl2; - platforms = platforms.linux; - maintainers = with maintainers; [ titanous edwtjo peterhoeg sephalon ]; - }; -} + }) diff --git a/pkgs/applications/video/kodi/plugins.nix b/pkgs/applications/video/kodi/packages.nix similarity index 80% rename from pkgs/applications/video/kodi/plugins.nix rename to pkgs/applications/video/kodi/packages.nix index 3aea028e9f0..8e0ecbf9b9b 100644 --- a/pkgs/applications/video/kodi/plugins.nix +++ b/pkgs/applications/video/kodi/packages.nix @@ -1,5 +1,5 @@ { lib, stdenv, callPackage, fetchFromGitHub -, cmake, kodiPlain, libcec_platform, tinyxml, pugixml +, cmake, kodi, libcec_platform, tinyxml, pugixml , steam, udev, libusb1, jsoncpp, libhdhomerun, zlib , python3Packages, expat, glib, nspr, nss, openssl , libssh, libarchive, lzma, bzip2, lz4, lzo }: @@ -8,32 +8,27 @@ with lib; let self = rec { - pluginDir = "/share/kodi/addons"; + addonDir = "/share/kodi/addons"; rel = "Matrix"; - kodi = kodiPlain; + inherit kodi; # Convert derivation to a kodi module. Stolen from ../../../top-level/python-packages.nix - toKodiPlugin = drv: drv.overrideAttrs(oldAttrs: { + toKodiAddon = drv: drv.overrideAttrs(oldAttrs: { # Use passthru in order to prevent rebuilds when possible. passthru = (oldAttrs.passthru or {})// { - kodiPluginFor = kodi; - requiredKodiPlugins = requiredKodiPlugins drv.propagatedBuildInputs; + kodiAddonFor = kodi; + requiredKodiAddons = requiredKodiAddons drv.propagatedBuildInputs; }; }); - # Check whether a derivation provides a Kodi plugin. - hasKodiPlugin = drv: drv ? kodiPluginFor && drv.kodiPluginFor == kodi; + # Check whether a derivation provides a Kodi addon. + hasKodiAddon = drv: drv ? kodiAddonFor && drv.kodiAddonFor == kodi; - # Get list of required Kodi plugins given a list of derivations. - requiredKodiPlugins = drvs: let - modules = filter hasKodiPlugin drvs; - in unique (modules ++ concatLists (catAttrs "requiredKodiPlugins" modules)); - - kodiWithPlugins = func: callPackage ./wrapper.nix { - inherit kodi; - plugins = requiredKodiPlugins (func self); - }; + # Get list of required Kodi addons given a list of derivations. + requiredKodiAddons = drvs: let + modules = filter hasKodiAddon drvs; + in unique (modules ++ concatLists (catAttrs "requiredKodiAddons" modules)); kodi-platform = stdenv.mkDerivation rec { project = "kodi-platform"; @@ -48,36 +43,45 @@ let self = rec { }; nativeBuildInputs = [ cmake ]; - buildInputs = [ kodiPlain libcec_platform tinyxml ]; + buildInputs = [ kodi libcec_platform tinyxml ]; }; - mkKodiPlugin = { plugin, namespace, version, sourceDir ? null, ... }@args: - toKodiPlugin (stdenv.mkDerivation ({ - name = "kodi-plugin-${plugin}-${version}"; + buildKodiAddon = + { name ? "${attrs.pname}-${attrs.version}" + , namespace + , sourceDir ? "" + , ... } @ attrs: + toKodiAddon (stdenv.mkDerivation ({ + name = "kodi-" + name; dontStrip = true; extraRuntimeDependencies = [ ]; installPhase = '' - ${if sourceDir == null then "" else "cd $src/$sourceDir"} - d=$out${pluginDir}/${namespace} + cd $src/$sourceDir + d=$out${addonDir}/${namespace} mkdir -p $d sauce="." [ -d ${namespace} ] && sauce=${namespace} cp -R "$sauce/"* $d ''; - } // args)); + } // attrs)); - mkKodiABIPlugin = { plugin, namespace, version, extraBuildInputs ? [], - extraRuntimeDependencies ? [], extraInstallPhase ? "", ... }@args: - toKodiPlugin (stdenv.mkDerivation ({ - name = "kodi-plugin-${plugin}-${version}"; + buildKodiBinaryAddon = + { name ? "${attrs.pname}-${attrs.version}" + , namespace + , version + , extraBuildInputs ? [] + , extraRuntimeDependencies ? [] + , extraInstallPhase ? "", ... } @ attrs: + toKodiAddon (stdenv.mkDerivation ({ + name = "kodi-" + name; dontStrip = true; nativeBuildInputs = [ cmake ]; - buildInputs = [ kodiPlain kodi-platform libcec_platform ] ++ extraBuildInputs; + buildInputs = [ kodi kodi-platform libcec_platform ] ++ extraBuildInputs; inherit extraRuntimeDependencies; @@ -86,25 +90,25 @@ let self = rec { "-DOVERRIDE_PATHS=1" ]; - # kodi checks for plugin .so libs existance in the addon folder (share/...) + # kodi checks for addon .so libs existance in the addon folder (share/...) # and the non-wrapped kodi lib/... folder before even trying to dlopen # them. Symlinking .so, as setting LD_LIBRARY_PATH is of no use installPhase = let n = namespace; in '' make install - ln -s $out/lib/addons/${n}/${n}.so.${version} $out${pluginDir}/${n}/${n}.so.${version} + ln -s $out/lib/addons/${n}/${n}.so.${version} $out${addonDir}/${n}/${n}.so.${version} ${extraInstallPhase} ''; - } // args)); + } // attrs)); - advanced-launcher = mkKodiPlugin rec { + advanced-launcher = buildKodiAddon rec { - plugin = "advanced-launcher"; + pname = "advanced-launcher"; namespace = "plugin.program.advanced.launcher"; version = "2.5.8"; src = fetchFromGitHub { owner = "edwtjo"; - repo = plugin; + repo = pname; rev = version; sha256 = "142vvgs37asq5m54xqhjzqvgmb0xlirvm0kz6lxaqynp0vvgrkx2"; }; @@ -127,9 +131,9 @@ let self = rec { }; - advanced-emulator-launcher = mkKodiPlugin rec { + advanced-emulator-launcher = buildKodiAddon rec { - plugin = "advanced-emulator-launcher"; + pname = "advanced-emulator-launcher"; namespace = "plugin.program.advanced.emulator.launcher"; version = "0.9.6"; @@ -175,8 +179,8 @@ let self = rec { }; mkController = controller: { - ${controller} = mkKodiPlugin rec { - plugin = pname + "-" + controller; + ${controller} = buildKodiAddon rec { + pname = pname + "-" + controller; namespace = "game.controller." + controller; sourceDir = "addons/" + namespace; inherit version src meta; @@ -209,23 +213,22 @@ let self = rec { broken = true; # requires port to python3 }; in { - service = mkKodiPlugin { - plugin = pname + "-service"; + service = buildKodiAddon { + pname = pname + "-service"; version = "1.2.1"; namespace = "service.hyper.launcher"; inherit src meta; }; - plugin = mkKodiPlugin { - plugin = pname; + plugin = buildKodiAddon { namespace = "plugin.hyper.launcher"; - inherit version src meta; + inherit pname version src meta; }; }; - joystick = mkKodiABIPlugin rec { + joystick = buildKodiBinaryAddon rec { + pname = namespace; namespace = "peripheral.joystick"; version = "1.7.1"; - plugin = namespace; src = fetchFromGitHub { owner = "xbmc"; @@ -243,8 +246,8 @@ let self = rec { extraBuildInputs = [ tinyxml udev ]; }; - simpleplugin = mkKodiPlugin rec { - plugin = "simpleplugin"; + simpleplugin = buildKodiAddon rec { + pname = "simpleplugin"; namespace = "script.module.simpleplugin"; version = "2.3.2"; @@ -263,16 +266,16 @@ let self = rec { }; }; - svtplay = mkKodiPlugin rec { + svtplay = buildKodiAddon rec { - plugin = "svtplay"; + pname = "svtplay"; namespace = "plugin.video.svtplay"; version = "5.1.12"; src = fetchFromGitHub { - name = plugin + "-" + version + ".tar.gz"; + name = pname + "-" + version + ".tar.gz"; owner = "nilzen"; - repo = "xbmc-" + plugin; + repo = "xbmc-" + pname; rev = "v${version}"; sha256 = "04j1nhm7mh9chs995lz6bv1vsq5xzk7a7c0lmk4bnfv8jrfpj0w6"; }; @@ -292,10 +295,10 @@ let self = rec { }; - steam-controller = mkKodiABIPlugin rec { + steam-controller = buildKodiBinaryAddon rec { + pname = namespace; namespace = "peripheral.steamcontroller"; version = "0.11.0"; - plugin = namespace; src = fetchFromGitHub { owner = "kodi-game"; @@ -314,9 +317,9 @@ let self = rec { }; - steam-launcher = mkKodiPlugin { + steam-launcher = buildKodiAddon { - plugin = "steam-launcher"; + pname = "steam-launcher"; namespace = "script.steam.launcher"; version = "3.5.1"; @@ -343,8 +346,8 @@ let self = rec { }; }; - pdfreader = mkKodiPlugin rec { - plugin = "pdfreader"; + pdfreader = buildKodiAddon rec { + pname = "pdfreader"; namespace = "plugin.image.pdf"; version = "2.0.2"; @@ -362,9 +365,9 @@ let self = rec { }; }; - pvr-hts = mkKodiABIPlugin rec { + pvr-hts = buildKodiBinaryAddon rec { - plugin = "pvr-hts"; + pname = "pvr-hts"; namespace = "pvr.hts"; version = "8.2.2"; @@ -384,9 +387,9 @@ let self = rec { }; - pvr-hdhomerun = mkKodiABIPlugin rec { + pvr-hdhomerun = buildKodiBinaryAddon rec { - plugin = "pvr-hdhomerun"; + pname = "pvr-hdhomerun"; namespace = "pvr.hdhomerun"; version = "7.1.0"; @@ -408,9 +411,9 @@ let self = rec { }; - pvr-iptvsimple = mkKodiABIPlugin rec { + pvr-iptvsimple = buildKodiBinaryAddon rec { - plugin = "pvr-iptvsimple"; + pname = "pvr-iptvsimple"; namespace = "pvr.iptvsimple"; version = "7.4.2"; @@ -432,9 +435,9 @@ let self = rec { extraBuildInputs = [ zlib pugixml ]; }; - osmc-skin = mkKodiPlugin rec { + osmc-skin = buildKodiAddon rec { - plugin = "osmc-skin"; + pname = "osmc-skin"; namespace = "skin.osmc"; version = "18.0.0"; @@ -454,8 +457,8 @@ let self = rec { }; }; - yatp = python3Packages.toPythonModule (mkKodiPlugin rec { - plugin = "yatp"; + yatp = python3Packages.toPythonModule (buildKodiAddon rec { + pname = "yatp"; namespace = "plugin.video.yatp"; version = "3.3.2"; @@ -482,9 +485,9 @@ let self = rec { }; }); - inputstream-adaptive = mkKodiABIPlugin rec { + inputstream-adaptive = buildKodiBinaryAddon rec { - plugin = "inputstream-adaptive"; + pname = "inputstream-adaptive"; namespace = "inputstream.adaptive"; version = "2.6.7"; @@ -500,7 +503,7 @@ let self = rec { extraRuntimeDependencies = [ glib nspr nss stdenv.cc.cc.lib ]; extraInstallPhase = let n = namespace; in '' - ln -s $out/lib/addons/${n}/libssd_wv.so $out/${pluginDir}/${n}/libssd_wv.so + ln -s $out/lib/addons/${n}/libssd_wv.so $out/${addonDir}/${n}/libssd_wv.so ''; meta = { @@ -511,10 +514,10 @@ let self = rec { }; }; - vfs-sftp = mkKodiABIPlugin rec { + vfs-sftp = buildKodiBinaryAddon rec { + pname = namespace; namespace = "vfs.sftp"; version = "2.0.0"; - plugin = namespace; src = fetchFromGitHub { owner = "xbmc"; @@ -533,10 +536,10 @@ let self = rec { extraBuildInputs = [ openssl libssh zlib ]; }; - vfs-libarchive = mkKodiABIPlugin rec { + vfs-libarchive = buildKodiBinaryAddon rec { + pname = namespace; namespace = "vfs.libarchive"; version = "2.0.0"; - plugin = namespace; src = fetchFromGitHub { owner = "xbmc"; diff --git a/pkgs/applications/video/kodi/unwrapped.nix b/pkgs/applications/video/kodi/unwrapped.nix new file mode 100644 index 00000000000..2a713324c3f --- /dev/null +++ b/pkgs/applications/video/kodi/unwrapped.nix @@ -0,0 +1,242 @@ +{ stdenv, lib, fetchFromGitHub, autoconf, automake, libtool, makeWrapper +, pkg-config, cmake, gnumake, yasm, python3Packages +, libgcrypt, libgpgerror, libunistring +, boost, avahi, lame +, gettext, pcre-cpp, yajl, fribidi, which +, openssl, gperf, tinyxml2, taglib, libssh, swig, jre_headless +, gtest, ncurses, spdlog +, libxml2, systemd +, alsaLib, libGLU, libGL, fontconfig, freetype, ftgl +, libjpeg, libpng, libtiff +, libmpeg2, libsamplerate, libmad +, libogg, libvorbis, flac, libxslt +, lzo, libcdio, libmodplug, libass, libbluray +, sqlite, libmysqlclient, nasm, gnutls, libva, libdrm +, curl, bzip2, zip, unzip, glxinfo +, libcec, libcec_platform, dcadec, libuuid +, libcrossguid, libmicrohttpd +, bluez, doxygen, giflib, glib, harfbuzz, lcms2, libidn, libpthreadstubs, libtasn1 +, libplist, p11-kit, zlib, flatbuffers, fmt, fstrcmp, rapidjson +, lirc +, x11Support ? true, libX11, xorgproto, libXt, libXmu, libXext, libXinerama, libXrandr, libXtst, libXfixes, xdpyinfo, libXdmcp +, dbusSupport ? true, dbus +, joystickSupport ? true, cwiid +, nfsSupport ? true, libnfs +, pulseSupport ? true, libpulseaudio +, rtmpSupport ? true, rtmpdump +, sambaSupport ? true, samba +, udevSupport ? true, udev +, usbSupport ? false, libusb-compat-0_1 +, vdpauSupport ? true, libvdpau +, waylandSupport ? false, wayland, wayland-protocols +, waylandpp ? null, libxkbcommon +, gbmSupport ? false, mesa, libinput +, buildPackages +}: + +assert usbSupport -> !udevSupport; # libusb-compat-0_1 won't be used if udev is avaliable +assert gbmSupport || waylandSupport || x11Support; + +let + kodiReleaseDate = "20210219"; + kodiVersion = "19.0"; + rel = "Matrix"; + + kodi_src = fetchFromGitHub { + owner = "xbmc"; + repo = "xbmc"; + rev = "${kodiVersion}-${rel}"; + sha256 = "097dg6a7v4ia85jx1pmlpwzdpqcqxlrmniqd005q73zvgj67zc2p"; + }; + + ffmpeg = stdenv.mkDerivation rec { + pname = "kodi-ffmpeg"; + version = "4.3.1"; + src = fetchFromGitHub { + owner = "xbmc"; + repo = "FFmpeg"; + rev = "${version}-${rel}-Beta1"; + sha256 = "1c5rwlxn6xj501iw7masdv2p6wb9rkmd299lmlkx97sw1kvxvg2w"; + }; + preConfigure = '' + cp ${kodi_src}/tools/depends/target/ffmpeg/{CMakeLists.txt,*.cmake} . + sed -i 's/ --cpu=''${CPU}//' CMakeLists.txt + sed -i 's/--strip=''${CMAKE_STRIP}/--strip=''${CMAKE_STRIP} --ranlib=''${CMAKE_RANLIB}/' CMakeLists.txt + ''; + cmakeFlags = lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ + "-DCROSSCOMPILING=ON" + "-DCPU=${stdenv.hostPlatform.parsed.cpu.name}" + "-DOS=${stdenv.hostPlatform.parsed.kernel.name}" + "-DPKG_CONFIG_EXECUTABLE=pkg-config" + ]; + buildInputs = [ libidn libtasn1 p11-kit zlib libva ] + ++ lib.optional vdpauSupport libvdpau; + nativeBuildInputs = [ cmake nasm pkg-config gnutls ]; + }; + + # We can build these externally but FindLibDvd.cmake forces us to build it + # them, so we currently just use them for the src. + libdvdcss = fetchFromGitHub { + owner = "xbmc"; + repo = "libdvdcss"; + rev = "1.4.2-${rel}-Beta-5"; + sha256 = "0j41ydzx0imaix069s3z07xqw9q95k7llh06fc27dcn6f7b8ydyl"; + }; + + libdvdnav = fetchFromGitHub { + owner = "xbmc"; + repo = "libdvdnav"; + rev = "6.0.0-${rel}-Alpha-3"; + sha256 = "0qwlf4lgahxqxk1r2pzl866mi03pbp7l1fc0rk522sc0ak2s9jhb"; + }; + + libdvdread = fetchFromGitHub { + owner = "xbmc"; + repo = "libdvdread"; + rev = "6.0.0-${rel}-Alpha-3"; + sha256 = "1xxn01mhkdnp10cqdr357wx77vyzfb5glqpqyg8m0skyi75aii59"; + }; + + kodi_platforms = lib.optional gbmSupport "gbm" + ++ lib.optional waylandSupport "wayland" + ++ lib.optional x11Support "x11"; + +in stdenv.mkDerivation { + pname = "kodi"; + version = kodiVersion; + + src = kodi_src; + + buildInputs = [ + gnutls libidn libtasn1 nasm p11-kit + libxml2 python3Packages.python + boost libmicrohttpd + gettext pcre-cpp yajl fribidi libva libdrm + openssl gperf tinyxml2 taglib libssh + gtest ncurses spdlog + alsaLib libGL libGLU fontconfig freetype ftgl + libjpeg libpng libtiff + libmpeg2 libsamplerate libmad + libogg libvorbis flac libxslt systemd + lzo libcdio libmodplug libass libbluray + sqlite libmysqlclient avahi lame + curl bzip2 zip unzip glxinfo + libcec libcec_platform dcadec libuuid + libgcrypt libgpgerror libunistring + libcrossguid libplist + bluez giflib glib harfbuzz lcms2 libpthreadstubs + ffmpeg flatbuffers fmt fstrcmp rapidjson + lirc + ] + ++ lib.optional x11Support [ + libX11 xorgproto libXt libXmu libXext.dev libXdmcp + libXinerama libXrandr.dev libXtst libXfixes + ] + ++ lib.optional dbusSupport dbus + ++ lib.optional joystickSupport cwiid + ++ lib.optional nfsSupport libnfs + ++ lib.optional pulseSupport libpulseaudio + ++ lib.optional rtmpSupport rtmpdump + ++ lib.optional sambaSupport samba + ++ lib.optional udevSupport udev + ++ lib.optional usbSupport libusb-compat-0_1 + ++ lib.optional vdpauSupport libvdpau + ++ lib.optionals waylandSupport [ + wayland + waylandpp.dev + wayland-protocols + # Not sure why ".dev" is needed here, but CMake doesn't find libxkbcommon otherwise + libxkbcommon.dev + ] + ++ lib.optional gbmSupport [ + libxkbcommon.dev + mesa.dev + libinput.dev + ]; + + nativeBuildInputs = [ + cmake + doxygen + makeWrapper + which + pkg-config gnumake + autoconf automake libtool # still needed for some components. Check if that is the case with 19.0 + jre_headless yasm gettext python3Packages.python flatbuffers + + # for TexturePacker + giflib zlib libpng libjpeg lzo + ] ++ lib.optionals waylandSupport [ wayland-protocols waylandpp.bin ]; + + depsBuildBuild = [ + buildPackages.stdenv.cc + ]; + + cmakeFlags = [ + "-DAPP_RENDER_SYSTEM=${if gbmSupport then "gles" else "gl"}" + "-Dlibdvdcss_URL=${libdvdcss}" + "-Dlibdvdnav_URL=${libdvdnav}" + "-Dlibdvdread_URL=${libdvdread}" + "-DGIT_VERSION=${kodiReleaseDate}" + "-DENABLE_EVENTCLIENTS=ON" + "-DENABLE_INTERNAL_CROSSGUID=OFF" + "-DENABLE_OPTICAL=ON" + "-DLIRC_DEVICE=/run/lirc/lircd" + "-DSWIG_EXECUTABLE=${buildPackages.swig}/bin/swig" + "-DFLATBUFFERS_FLATC_EXECUTABLE=${buildPackages.flatbuffers}/bin/flatc" + "-DPYTHON_EXECUTABLE=${buildPackages.python3Packages.python}/bin/python" + ] ++ lib.optional waylandSupport [ + "-DWAYLANDPP_SCANNER=${buildPackages.waylandpp}/bin/wayland-scanner++" + ]; + + # 14 tests fail but the biggest issue is that every test takes 30 seconds - + # I'm guessing there is a thing waiting to time out + doCheck = false; + + preConfigure = '' + cmakeFlagsArray+=("-DCORE_PLATFORM_NAME=${lib.concatStringsSep " " kodi_platforms}") + '' + lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) '' + # Need these tools on the build system when cross compiling, + # hacky, but have found no other way. + CXX=${stdenv.cc.targetPrefix}c++ LD=ld make -C tools/depends/native/JsonSchemaBuilder + cmakeFlags+=" -DWITH_JSONSCHEMABUILDER=$PWD/tools/depends/native/JsonSchemaBuilder/bin" + + CXX=${stdenv.cc.targetPrefix}c++ LD=ld make EXTRA_CONFIGURE= -C tools/depends/native/TexturePacker + cmakeFlags+=" -DWITH_TEXTUREPACKER=$PWD/tools/depends/native/TexturePacker/bin" + ''; + + postPatch = '' + substituteInPlace xbmc/platform/posix/PosixTimezone.cpp \ + --replace 'usr/share/zoneinfo' 'etc/zoneinfo' + ''; + + postInstall = '' + for p in $(ls $out/bin/) ; do + wrapProgram $out/bin/$p \ + --prefix PATH ":" "${lib.makeBinPath ([ python3Packages.python glxinfo ] + ++ lib.optional x11Support xdpyinfo ++ lib.optional sambaSupport samba)}" \ + --prefix LD_LIBRARY_PATH ":" "${lib.makeLibraryPath + ([ curl systemd libmad libvdpau libcec libcec_platform libass ] + ++ lib.optional nfsSupport libnfs + ++ lib.optional rtmpSupport rtmpdump)}" + done + + substituteInPlace $out/share/xsessions/kodi.desktop \ + --replace kodi-standalone $out/bin/kodi-standalone + ''; + + doInstallCheck = true; + + installCheckPhase = "$out/bin/kodi --version"; + + passthru = { + pythonPackages = python3Packages; + }; + + meta = with lib; { + description = "Media center"; + homepage = "https://kodi.tv/"; + license = licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = with maintainers; [ titanous edwtjo peterhoeg sephalon ]; + }; +} diff --git a/pkgs/applications/video/kodi/wrapper.nix b/pkgs/applications/video/kodi/wrapper.nix index 80a36df3de7..2b4abbb500a 100644 --- a/pkgs/applications/video/kodi/wrapper.nix +++ b/pkgs/applications/video/kodi/wrapper.nix @@ -1,11 +1,9 @@ -{ lib, makeWrapper, buildEnv, kodi, plugins }: +{ lib, makeWrapper, buildEnv, kodi, addons }: -let - drvName = builtins.parseDrvName kodi.name; -in buildEnv { - name = "${drvName.name}-with-plugins-${drvName.version}"; +buildEnv { + name = "${kodi.name}-env"; - paths = [ kodi ] ++ plugins; + paths = [ kodi ] ++ addons; pathsToLink = [ "/share" ]; buildInputs = [ makeWrapper ]; @@ -15,16 +13,11 @@ in buildEnv { for exe in kodi{,-standalone} do makeWrapper ${kodi}/bin/$exe $out/bin/$exe \ - --prefix PYTHONPATH : ${kodi.pythonPackages.makePythonPath plugins} \ + --prefix PYTHONPATH : ${kodi.pythonPackages.makePythonPath addons} \ --prefix KODI_HOME : $out/share/kodi \ --prefix LD_LIBRARY_PATH ":" "${lib.makeLibraryPath (lib.concatMap - (plugin: plugin.extraRuntimeDependencies or []) plugins)}" + (plugin: plugin.extraRuntimeDependencies or []) addons)}" done ''; - - meta = kodi.meta // { - description = kodi.meta.description - + " (with plugins: ${lib.concatMapStringsSep ", " (x: x.name) plugins})"; - }; } diff --git a/pkgs/data/fonts/twitter-color-emoji/default.nix b/pkgs/data/fonts/twitter-color-emoji/default.nix index e74e51a95dc..6cceee558a9 100644 --- a/pkgs/data/fonts/twitter-color-emoji/default.nix +++ b/pkgs/data/fonts/twitter-color-emoji/default.nix @@ -14,14 +14,14 @@ }: let - version = "13.0.1"; + version = "13.0.2"; twemojiSrc = fetchFromGitHub { name = "twemoji"; owner = "twitter"; repo = "twemoji"; rev = "v${version}"; - sha256 = "0acinlv2l3s1jga2i9wh16mvgkxw4ipzgvjx8c80zd104lpdpgd9"; + sha256 = "069pyq09jfzwp3xla8vmhbyyam32x2iyp0s29xcxlkj22p99bg6d"; }; pythonEnv = diff --git a/pkgs/development/gnuradio-modules/ais/default.nix b/pkgs/development/gnuradio-modules/ais/default.nix new file mode 100644 index 00000000000..0770d83f21d --- /dev/null +++ b/pkgs/development/gnuradio-modules/ais/default.nix @@ -0,0 +1,45 @@ +{ lib +, stdenv +, mkDerivation +, fetchFromGitHub +, cmake +, pkg-config +, python +, boost +, cppunit +, log4cpp +, osmosdr +}: + +mkDerivation rec { + pname = "gr-ais"; + version = "2015-12-20"; + src = fetchFromGitHub { + owner = "bistromath"; + repo = "gr-ais"; + rev = "cdc1f52745853f9c739c718251830eb69704b26e"; + sha256 = "1vl3kk8xr2mh5lf31zdld7yzmwywqffffah8iblxdzblgsdwxfl6"; + }; + disabledForGRafter = "3.8"; + + nativeBuildInputs = [ + cmake + pkg-config + python + ]; + + buildInputs = [ + cppunit + osmosdr + boost + log4cpp + ]; + + meta = with lib; { + description = "Gnuradio block for ais"; + homepage = "https://github.com/bistromath/gr-ais"; + license = licenses.gpl3Plus; + platforms = platforms.unix; + maintainers = with maintainers; [ mog ]; + }; +} diff --git a/pkgs/development/gnuradio-modules/gsm/default.nix b/pkgs/development/gnuradio-modules/gsm/default.nix new file mode 100644 index 00000000000..835c5456668 --- /dev/null +++ b/pkgs/development/gnuradio-modules/gsm/default.nix @@ -0,0 +1,48 @@ +{ lib +, mkDerivation +, fetchFromGitHub +, cmake +, pkg-config +, cppunit +, swig +, boost +, log4cpp +, python +, libosmocore +, osmosdr +}: + +mkDerivation { + pname = "gr-gsm"; + version = "2016-08-25"; + src = fetchFromGitHub { + owner = "ptrkrysik"; + repo = "gr-gsm"; + rev = "3ca05e6914ef29eb536da5dbec323701fbc2050d"; + sha256 = "13nnq927kpf91iqccr8db9ripy5czjl5jiyivizn6bia0bam2pvx"; + }; + disabledForGRafter = "3.8"; + + nativeBuildInputs = [ + cmake + pkg-config + swig + python + ]; + + buildInputs = [ + cppunit + log4cpp + boost + libosmocore + osmosdr + ]; + + meta = with lib; { + description = "Gnuradio block for gsm"; + homepage = "https://github.com/ptrkrysik/gr-gsm"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = with maintainers; [ mog ]; + }; +} diff --git a/pkgs/development/gnuradio-modules/limesdr/default.nix b/pkgs/development/gnuradio-modules/limesdr/default.nix new file mode 100644 index 00000000000..c10ab9df391 --- /dev/null +++ b/pkgs/development/gnuradio-modules/limesdr/default.nix @@ -0,0 +1,61 @@ +{ lib +, mkDerivation +, fetchFromGitHub +, gnuradio +, cmake +, pkg-config +, doxygen +, swig +, python +, log4cpp +, mpir +, boost +, gmp +, icu +, limesuite +}: + +let + version = { + "3.7" = "2.0.0"; + "3.8" = "3.0.1"; + "3.9" = null; + }.${gnuradio.versionAttr.major}; + src = fetchFromGitHub { + owner = "myriadrf"; + repo = "gr-limesdr"; + rev = "v${version}"; + sha256 = { + "3.7" = "0ldqvfwl0gil89l9s31fjf9d7ki0dk572i8vna336igfaz348ypq"; + "3.8" = "ffs+8TU0yr6IW1xZJ/abQ1CQWGZM+zYqPRJxy3ZvM9U="; + "3.9" = null; + }.${gnuradio.versionAttr.major}; + }; +in mkDerivation { + pname = "gr-limesdr"; + inherit version src; + disabledForGRafter = "3.9"; + + nativeBuildInputs = [ + cmake + pkg-config + swig + python + ]; + buildInputs = [ + log4cpp + mpir + boost + gmp + icu + limesuite + ]; + + meta = with lib; { + description = "Gnuradio source and sink blocks for LimeSDR"; + homepage = "https://wiki.myriadrf.org/Gr-limesdr_Plugin_for_GNURadio"; + license = licenses.mit; + platforms = platforms.linux; + maintainers = [ maintainers.markuskowa ]; + }; +} diff --git a/pkgs/development/gnuradio-modules/mkDerivation.nix b/pkgs/development/gnuradio-modules/mkDerivation.nix new file mode 100644 index 00000000000..014968f82cc --- /dev/null +++ b/pkgs/development/gnuradio-modules/mkDerivation.nix @@ -0,0 +1,25 @@ +{ lib +, unwrapped +}: + +mkDerivation: + +args: + +# Check if it's supposed to not get built for the current gnuradio version +if (builtins.hasAttr "disabledForGRafter" args) && +(lib.versionAtLeast unwrapped.versionAttr.major args.disabledForGRafter) then +let name = args.name or "${args.pname}"; in +throw "Package ${name} is incompatible with GNURadio ${unwrapped.versionAttr.major}" +else + +let + args_ = { + enableParallelBuilding = args.enableParallelBuilding or true; + nativeBuildInputs = (args.nativeBuildInputs or []); + # We add gnuradio and volk itself by default - most gnuradio based packages + # will not consider it a depenency worth mentioning and it will almost + # always be needed + buildInputs = (args.buildInputs or []) ++ [ unwrapped unwrapped.volk ]; + }; +in mkDerivation (args // args_) diff --git a/pkgs/applications/radio/gnuradio/nacl.nix b/pkgs/development/gnuradio-modules/nacl/default.nix similarity index 50% rename from pkgs/applications/radio/gnuradio/nacl.nix rename to pkgs/development/gnuradio-modules/nacl/default.nix index f6c21e79454..1ffb0afee07 100644 --- a/pkgs/applications/radio/gnuradio/nacl.nix +++ b/pkgs/development/gnuradio-modules/nacl/default.nix @@ -1,31 +1,40 @@ -{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, boost, gnuradio, uhd -, makeWrapper, libsodium, cppunit, log4cpp -, pythonSupport ? true, python, swig +{ lib +, mkDerivation +, fetchFromGitHub +, cmake +, pkg-config +, cppunit +, swig +, boost +, log4cpp +, python +, libsodium }: -assert pythonSupport -> python != null && swig != null; - -stdenv.mkDerivation { +mkDerivation { pname = "gr-nacl"; version = "2017-04-10"; - src = fetchFromGitHub { owner = "stwunsch"; repo = "gr-nacl"; rev = "15276bb0fcabf5fe4de4e58df3d579b5be0e9765"; sha256 = "018np0qlk61l7mlv3xxx5cj1rax8f1vqrsrch3higsl25yydbv7v"; }; + disabledForGRafter = "3.8"; + + nativeBuildInputs = [ + cmake + pkg-config + swig + python + ]; - nativeBuildInputs = [ cmake pkg-config ]; buildInputs = [ - boost gnuradio uhd makeWrapper libsodium cppunit log4cpp - ] ++ lib.optionals pythonSupport [ python swig ]; - - postInstall = '' - for prog in "$out"/bin/*; do - wrapProgram "$prog" --set PYTHONPATH $PYTHONPATH:$(toPythonPath "$out") - done - ''; + cppunit + log4cpp + boost + libsodium + ]; meta = with lib; { description = "Gnuradio block for encryption"; diff --git a/pkgs/development/gnuradio-modules/osmosdr/default.nix b/pkgs/development/gnuradio-modules/osmosdr/default.nix new file mode 100644 index 00000000000..0e1cf244c8f --- /dev/null +++ b/pkgs/development/gnuradio-modules/osmosdr/default.nix @@ -0,0 +1,86 @@ +{ lib +, mkDerivation +, fetchgit +, gnuradio +, cmake +, pkg-config +, log4cpp +, mpir +, boost +, gmp +, fftwFloat +, python +, swig +, uhd +, icu +, airspy +, hackrf +, libbladeRF +, rtl-sdr +, soapysdr-with-plugins +}: + +let + version = { + "3.7" = "0.1.5"; + "3.8" = "0.2.2"; + "3.9" = null; + }.${gnuradio.versionAttr.major}; + src = fetchgit { + url = "git://git.osmocom.org/gr-osmosdr"; + rev = "v${version}"; + sha256 = { + "3.7" = "0bf9bnc1c3c4yqqqgmg3nhygj6rcfmyk6pybi27f7461d2cw1drv"; + "3.8" = "HT6xlN6cJAnvF+s1g2I1uENhBJJizdADlLXeSD0rEqs="; + "3.9" = null; + }.${gnuradio.versionAttr.major}; + }; +in mkDerivation { + pname = "gr-osmosdr"; + inherit version src; + disabledForGRafter = "3.9"; + + buildInputs = [ + log4cpp + mpir + boost + fftwFloat + gmp + icu + airspy + hackrf + libbladeRF + rtl-sdr + soapysdr-with-plugins + ] ++ lib.optional (gnuradio.hasFeature "gr-uhd" gnuradio.features) [ + uhd + ]; + cmakeFlags = [ + (if (gnuradio.hasFeature "python-support" gnuradio.features) then + "-DENABLE_PYTHON=ON" + else + "-DENABLE_PYTHON=OFF" + ) + ]; + nativeBuildInputs = [ + cmake + pkg-config + swig + ] ++ lib.optionals (gnuradio.hasFeature "python-support" gnuradio.features) [ + (if (gnuradio.versionAttr.major == "3.7") then + python.pkgs.cheetah + else + python.pkgs.Mako + ) + python + ] + ; + + meta = with lib; { + description = "Gnuradio block for OsmoSDR and rtl-sdr"; + homepage = "https://sdr.osmocom.org/trac/wiki/GrOsmoSDR"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ bjornfor ]; + platforms = platforms.unix; + }; +} diff --git a/pkgs/development/gnuradio-modules/rds/default.nix b/pkgs/development/gnuradio-modules/rds/default.nix new file mode 100644 index 00000000000..c068d6af810 --- /dev/null +++ b/pkgs/development/gnuradio-modules/rds/default.nix @@ -0,0 +1,59 @@ +{ lib +, mkDerivation +, fetchFromGitHub +, gnuradio +, cmake +, pkg-config +, swig +, python +, log4cpp +, mpir +, boost +, gmp +, icu +}: + +let + version = { + "3.7" = "1.1.0"; + "3.8" = "3.8.0"; + "3.9" = null; + }.${gnuradio.versionAttr.major}; + src = fetchFromGitHub { + owner = "bastibl"; + repo = "gr-rds"; + rev = "v${version}"; + sha256 = { + "3.7" = "0jkzchvw0ivcxsjhi1h0mf7k13araxf5m4wi5v9xdgqxvipjzqfy"; + "3.8" = "+yKLJu2bo7I2jkAiOdjvdhZwxFz9NFgTmzcLthH9Y5o="; + "3.9" = null; + }.${gnuradio.versionAttr.major}; + }; +in mkDerivation { + pname = "gr-rds"; + inherit version src; + disabledForGRafter = "3.9"; + + buildInputs = [ + log4cpp + mpir + boost + gmp + icu + ]; + + nativeBuildInputs = [ + cmake + pkg-config + swig + python + ]; + + meta = with lib; { + description = "Gnuradio block for radio data system"; + homepage = "https://github.com/bastibl/gr-rds"; + license = licenses.gpl2Plus; + platforms = platforms.unix; + maintainers = with maintainers; [ mog ]; + }; +} diff --git a/pkgs/development/guile-modules/guile-opengl/default.nix b/pkgs/development/guile-modules/guile-opengl/default.nix index effa651b99c..5ada5d41c7d 100644 --- a/pkgs/development/guile-modules/guile-opengl/default.nix +++ b/pkgs/development/guile-modules/guile-opengl/default.nix @@ -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; }; } diff --git a/pkgs/development/libraries/clucene-core/default.nix b/pkgs/development/libraries/clucene-core/default.nix index 20b0a3b547c..8d5b389150a 100644 --- a/pkgs/development/libraries/clucene-core/default.nix +++ b/pkgs/development/libraries/clucene-core/default.nix @@ -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 ]; }; } diff --git a/pkgs/development/libraries/gtkdatabox/default.nix b/pkgs/development/libraries/gtkdatabox/default.nix index d7cca43841e..ddab0046b66 100644 --- a/pkgs/development/libraries/gtkdatabox/default.nix +++ b/pkgs/development/libraries/gtkdatabox/default.nix @@ -17,6 +17,6 @@ stdenv.mkDerivation rec { license = lib.licenses.lgpl2; - platforms = lib.platforms.linux; + platforms = lib.platforms.unix; }; } diff --git a/pkgs/development/libraries/htmlcxx/default.nix b/pkgs/development/libraries/htmlcxx/default.nix index 286834112f2..d9072e46e40 100644 --- a/pkgs/development/libraries/htmlcxx/default.nix +++ b/pkgs/development/libraries/htmlcxx/default.nix @@ -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; }; } diff --git a/pkgs/development/libraries/iniparser/default.nix b/pkgs/development/libraries/iniparser/default.nix index 8c7fdfd04d6..62deaeb1c28 100644 --- a/pkgs/development/libraries/iniparser/default.nix +++ b/pkgs/development/libraries/iniparser/default.nix @@ -36,6 +36,9 @@ stdenv.mkDerivation rec { cp libiniparser.a $out/lib cp libiniparser.so.1 $out/lib ln -s libiniparser.so.1 $out/lib/libiniparser.so + + mkdir -p $out/lib/pkgconfig + substituteAll ${./iniparser.pc.in} $out/lib/pkgconfig/iniparser.pc ''; meta = with lib; { diff --git a/pkgs/development/libraries/iniparser/iniparser.pc.in b/pkgs/development/libraries/iniparser/iniparser.pc.in new file mode 100644 index 00000000000..fb94188fff7 --- /dev/null +++ b/pkgs/development/libraries/iniparser/iniparser.pc.in @@ -0,0 +1,12 @@ +prefix=@out@ +exec_prefix=@out@ +libdir=${exec_prefix}/lib +includedir=${prefix}/include +datarootdir=${prefix}/share +datadir=${datarootdir} + +Name: libiniparser +Description: Iniparser library +Version: @version@ +Libs: -L${libdir} -liniparser +Cflags: -I${includedir} diff --git a/pkgs/development/libraries/kissfft/default.nix b/pkgs/development/libraries/kissfft/default.nix index 5395ac4ab9c..fe52adfa20d 100644 --- a/pkgs/development/libraries/kissfft/default.nix +++ b/pkgs/development/libraries/kissfft/default.nix @@ -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; }; } diff --git a/pkgs/development/libraries/levmar/default.nix b/pkgs/development/libraries/levmar/default.nix index c5d6877a844..ed945d9e5a0 100644 --- a/pkgs/development/libraries/levmar/default.nix +++ b/pkgs/development/libraries/levmar/default.nix @@ -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; }; } diff --git a/pkgs/development/libraries/libcec/platform.nix b/pkgs/development/libraries/libcec/platform.nix index 15972272a18..61eccf1f40e 100644 --- a/pkgs/development/libraries/libcec/platform.nix +++ b/pkgs/development/libraries/libcec/platform.nix @@ -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 ]; }; } diff --git a/pkgs/development/libraries/libcli/default.nix b/pkgs/development/libraries/libcli/default.nix index ceb0338e5cc..8aa06bfb19b 100644 --- a/pkgs/development/libraries/libcli/default.nix +++ b/pkgs/development/libraries/libcli/default.nix @@ -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; }; } diff --git a/pkgs/development/libraries/libcredis/default.nix b/pkgs/development/libraries/libcredis/default.nix index 902f5a6ee26..247d341bce9 100644 --- a/pkgs/development/libraries/libcredis/default.nix +++ b/pkgs/development/libraries/libcredis/default.nix @@ -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 ]; }; } diff --git a/pkgs/development/libraries/libcsptr/default.nix b/pkgs/development/libraries/libcsptr/default.nix index e30165054aa..a8f33deda36 100644 --- a/pkgs/development/libraries/libcsptr/default.nix +++ b/pkgs/development/libraries/libcsptr/default.nix @@ -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 ]; }; } diff --git a/pkgs/development/libraries/libdigidocpp/default.nix b/pkgs/development/libraries/libdigidocpp/default.nix index f7170fa7f10..5b2914c141f 100644 --- a/pkgs/development/libraries/libdigidocpp/default.nix +++ b/pkgs/development/libraries/libdigidocpp/default.nix @@ -2,12 +2,12 @@ , xercesc, xml-security-c, pkg-config, xsd, zlib, xalanc, xxd }: stdenv.mkDerivation rec { - version = "3.14.4"; + version = "3.14.5"; pname = "libdigidocpp"; src = fetchurl { url = "https://github.com/open-eid/libdigidocpp/releases/download/v${version}/libdigidocpp-${version}.tar.gz"; - sha256 = "1x72icq5lp5cfv6kyxqc3863wa164s0g41nbi6gldr8syprzdk1l"; + sha256 = "sha256-PSrYoz5ID88pYs/4rP2kz0NpI0pK6wcnx62HokE0g20="; }; nativeBuildInputs = [ cmake pkg-config xxd ]; diff --git a/pkgs/development/libraries/libhandy/default.nix b/pkgs/development/libraries/libhandy/default.nix index 43092f71c57..4532edfd884 100644 --- a/pkgs/development/libraries/libhandy/default.nix +++ b/pkgs/development/libraries/libhandy/default.nix @@ -22,14 +22,14 @@ stdenv.mkDerivation rec { pname = "libhandy"; - version = "1.0.3"; + version = "1.2.0"; outputs = [ "out" "dev" "devdoc" "glade" ]; outputBin = "dev"; src = fetchurl { url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "sha256-VZuzrMLDYkiJF+ty7SW9wYH0riaslNF3Y0zF00yGf3o="; + sha256 = "sha256-OfWQriCRDnb+HAYHsuvliXUPRWENau7Fww4u5gKiCyU="; }; nativeBuildInputs = [ diff --git a/pkgs/development/libraries/libisoburn/default.nix b/pkgs/development/libraries/libisoburn/default.nix index 1e2ae41f3f2..44367aad1f9 100644 --- a/pkgs/development/libraries/libisoburn/default.nix +++ b/pkgs/development/libraries/libisoburn/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "libisoburn"; - version = "1.5.2"; + version = "1.5.4"; src = fetchurl { url = "http://files.libburnia-project.org/releases/${pname}-${version}.tar.gz"; - sha256 = "1v4hanapr02wf2i6rncc62z8cyc18078nb2y6q4hp3hxa74hnwnc"; + sha256 = "sha256-LYmEbUOIDxf6WRxTs76kL/uANijk5jDGgPwskYT3kTI="; }; buildInputs = [ attr zlib libburn libisofs ]; diff --git a/pkgs/development/libraries/liblcf/default.nix b/pkgs/development/libraries/liblcf/default.nix index 2c7f0989282..1e6f57368b7 100644 --- a/pkgs/development/libraries/liblcf/default.nix +++ b/pkgs/development/libraries/liblcf/default.nix @@ -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; }; } diff --git a/pkgs/development/libraries/liblinear/default.nix b/pkgs/development/libraries/liblinear/default.nix index caf03696013..aa2dcd648b8 100644 --- a/pkgs/development/libraries/liblinear/default.nix +++ b/pkgs/development/libraries/liblinear/default.nix @@ -4,13 +4,13 @@ let soVersion = "4"; in stdenv.mkDerivation rec { pname = "liblinear"; - version = "2.42"; + version = "2.43"; src = fetchFromGitHub { owner = "cjlin1"; repo = "liblinear"; rev = "v${builtins.replaceStrings ["."] [""] version}"; - sha256 = "0p0hpjajfkskhd7jiv5zwhfa8hi49q3mgifjlkqvy99xspv98ijj"; + sha256 = "sha256-qcSMuWHJgsapWs1xgxv3fKSXcx18q8cwyIn3E4RCGKA="; }; postPatch = '' diff --git a/pkgs/development/libraries/libnatpmp/default.nix b/pkgs/development/libraries/libnatpmp/default.nix index dd902c0021d..11b8d66b4a8 100644 --- a/pkgs/development/libraries/libnatpmp/default.nix +++ b/pkgs/development/libraries/libnatpmp/default.nix @@ -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; }; } diff --git a/pkgs/development/libraries/libnest2d/default.nix b/pkgs/development/libraries/libnest2d/default.nix index 567598500d6..1e666758f81 100644 --- a/pkgs/development/libraries/libnest2d/default.nix +++ b/pkgs/development/libraries/libnest2d/default.nix @@ -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; }; } diff --git a/pkgs/development/libraries/liboauth/default.nix b/pkgs/development/libraries/liboauth/default.nix index caab0a83fcf..5fe5ba86bea 100644 --- a/pkgs/development/libraries/liboauth/default.nix +++ b/pkgs/development/libraries/liboauth/default.nix @@ -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"; diff --git a/pkgs/development/libraries/libofx/default.nix b/pkgs/development/libraries/libofx/default.nix index f46a2039464..dc40086ad0a 100644 --- a/pkgs/development/libraries/libofx/default.nix +++ b/pkgs/development/libraries/libofx/default.nix @@ -3,13 +3,13 @@ stdenv.mkDerivation rec { pname = "libofx"; - version = "0.10.0"; + version = "0.10.1"; src = fetchFromGitHub { owner = "LibOFX"; repo = pname; rev = version; - sha256 = "sha256-gdLh5ZUciN4FCJwTCaJSKJ5RjXgNDXnDOUWkyTZwf2c="; + sha256 = "sha256-QIasZKwSD9YCidHCxT/HOThxE5HEQWD0I2/loDP6mlU="; }; preConfigure = "./autogen.sh"; diff --git a/pkgs/development/libraries/libxmi/default.nix b/pkgs/development/libraries/libxmi/default.nix index 037e7036f49..b9a2b6de3cc 100644 --- a/pkgs/development/libraries/libxmi/default.nix +++ b/pkgs/development/libraries/libxmi/default.nix @@ -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 = [ ]; }; } diff --git a/pkgs/development/libraries/libxmp/default.nix b/pkgs/development/libraries/libxmp/default.nix index 0b953f95d7e..31a14ff6ae4 100644 --- a/pkgs/development/libraries/libxmp/default.nix +++ b/pkgs/development/libraries/libxmp/default.nix @@ -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 { diff --git a/pkgs/development/libraries/lightning/default.nix b/pkgs/development/libraries/lightning/default.nix index 5fdc06bce01..5f8c71fa6aa 100644 --- a/pkgs/development/libraries/lightning/default.nix +++ b/pkgs/development/libraries/lightning/default.nix @@ -27,6 +27,6 @@ stdenv.mkDerivation rec { ''; maintainers = [ maintainers.AndersonTorres ]; license = licenses.lgpl3Plus; - platforms = lib.platforms.linux; + platforms = lib.platforms.all; }; } diff --git a/pkgs/development/libraries/loudmouth/default.nix b/pkgs/development/libraries/loudmouth/default.nix index 0245417bbf9..a8d9b23cc84 100644 --- a/pkgs/development/libraries/loudmouth/default.nix +++ b/pkgs/development/libraries/loudmouth/default.nix @@ -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; diff --git a/pkgs/development/libraries/lrdf/default.nix b/pkgs/development/libraries/lrdf/default.nix index 51b2635b89e..bd78a4329a5 100644 --- a/pkgs/development/libraries/lrdf/default.nix +++ b/pkgs/development/libraries/lrdf/default.nix @@ -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; }; } diff --git a/pkgs/development/libraries/metal/default.nix b/pkgs/development/libraries/metal/default.nix index b98ae8e217c..2f43485e05e 100644 --- a/pkgs/development/libraries/metal/default.nix +++ b/pkgs/development/libraries/metal/default.nix @@ -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; }; } diff --git a/pkgs/development/libraries/minixml/default.nix b/pkgs/development/libraries/minixml/default.nix index 93c03b31a8a..9bf5235db82 100644 --- a/pkgs/development/libraries/minixml/default.nix +++ b/pkgs/development/libraries/minixml/default.nix @@ -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 ]; }; } diff --git a/pkgs/development/libraries/msgpuck/default.nix b/pkgs/development/libraries/msgpuck/default.nix index 53fb3bec908..cc7b056bb98 100644 --- a/pkgs/development/libraries/msgpuck/default.nix +++ b/pkgs/development/libraries/msgpuck/default.nix @@ -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 ]; }; } diff --git a/pkgs/development/libraries/oneDNN/default.nix b/pkgs/development/libraries/oneDNN/default.nix index c87fc4fca79..c7b8339e710 100644 --- a/pkgs/development/libraries/oneDNN/default.nix +++ b/pkgs/development/libraries/oneDNN/default.nix @@ -5,13 +5,13 @@ # https://github.com/oneapi-src/oneDNN#oneapi-deep-neural-network-library-onednn stdenv.mkDerivation rec { pname = "oneDNN"; - version = "2.1"; + version = "2.1.2"; src = fetchFromGitHub { owner = "oneapi-src"; repo = "oneDNN"; rev = "v${version}"; - sha256 = "sha256-PZ8r1eNfz4dVxlbtQJSrxiw/Hk6E6wSDapkMy7ux9fI="; + sha256 = "sha256-8nXzsY4+XnhKbuYyDWehiWqQEWoEcDBF4KagOg1WlN8="; }; outputs = [ "out" "dev" "doc" ]; diff --git a/pkgs/development/libraries/orcania/default.nix b/pkgs/development/libraries/orcania/default.nix index 5c9c2c8da7f..157769c7772 100644 --- a/pkgs/development/libraries/orcania/default.nix +++ b/pkgs/development/libraries/orcania/default.nix @@ -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 ]; diff --git a/pkgs/development/libraries/osip/default.nix b/pkgs/development/libraries/osip/default.nix index 322ed30a847..b7cfc5da9d3 100644 --- a/pkgs/development/libraries/osip/default.nix +++ b/pkgs/development/libraries/osip/default.nix @@ -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; }; } diff --git a/pkgs/development/libraries/pxlib/default.nix b/pkgs/development/libraries/pxlib/default.nix index 3acaf8bac15..4b6b9ada7ab 100644 --- a/pkgs/development/libraries/pxlib/default.nix +++ b/pkgs/development/libraries/pxlib/default.nix @@ -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 ]; }; } diff --git a/pkgs/development/libraries/safefile/default.nix b/pkgs/development/libraries/safefile/default.nix index db18621d8e4..293a13dbddc 100644 --- a/pkgs/development/libraries/safefile/default.nix +++ b/pkgs/development/libraries/safefile/default.nix @@ -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; }; diff --git a/pkgs/development/libraries/shhmsg/default.nix b/pkgs/development/libraries/shhmsg/default.nix index 0c736e4cb91..704df3dc5ef 100644 --- a/pkgs/development/libraries/shhmsg/default.nix +++ b/pkgs/development/libraries/shhmsg/default.nix @@ -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; }; } - diff --git a/pkgs/development/libraries/shhopt/default.nix b/pkgs/development/libraries/shhopt/default.nix index da1b820fcd5..0657b13e557 100644 --- a/pkgs/development/libraries/shhopt/default.nix +++ b/pkgs/development/libraries/shhopt/default.nix @@ -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; }; } diff --git a/pkgs/development/libraries/spglib/default.nix b/pkgs/development/libraries/spglib/default.nix index 12d696b65a8..3d1236a03db 100644 --- a/pkgs/development/libraries/spglib/default.nix +++ b/pkgs/development/libraries/spglib/default.nix @@ -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; }; } diff --git a/pkgs/development/libraries/spice-protocol/default.nix b/pkgs/development/libraries/spice-protocol/default.nix index 07b670a2718..1eaa3398e40 100644 --- a/pkgs/development/libraries/spice-protocol/default.nix +++ b/pkgs/development/libraries/spice-protocol/default.nix @@ -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; }; } diff --git a/pkgs/development/libraries/tidyp/default.nix b/pkgs/development/libraries/tidyp/default.nix index 5c0ad8463b4..f4c24a126e5 100644 --- a/pkgs/development/libraries/tidyp/default.nix +++ b/pkgs/development/libraries/tidyp/default.nix @@ -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; }; diff --git a/pkgs/development/libraries/volk/default.nix b/pkgs/development/libraries/volk/default.nix new file mode 100644 index 00000000000..574a90d2272 --- /dev/null +++ b/pkgs/development/libraries/volk/default.nix @@ -0,0 +1,51 @@ +{ stdenv +, lib +, fetchFromGitHub +, fetchpatch +, cmake +, cppunit +, python3 +, enableModTool ? true +, removeReferencesTo +}: + +stdenv.mkDerivation rec { + pname = "volk"; + version = "2.4.1"; + + src = fetchFromGitHub { + owner = "gnuradio"; + repo = pname; + rev = "v${version}"; + sha256 = "fuHJ+p5VN4ThdbQFbzB08VCuy/Zo7m/I1Gs5EQGPeNY="; + fetchSubmodules = true; + }; + + patches = [ + # Fixes a failing test: https://github.com/gnuradio/volk/pull/434 + (fetchpatch { + url = "https://github.com/gnuradio/volk/pull/434/commits/bce8531b6f1a3c5abe946ed6674b283d54258281.patch"; + sha256 = "OLW9uF6iL47z63kjvYqwsWtkINav8Xhs+Htqg6Kr4uI="; + }) + ]; + cmakeFlags = lib.optionals (!enableModTool) [ "-DENABLE_MODTOOL=OFF" ]; + postInstall = '' + ${removeReferencesTo}/bin/remove-references-to -t ${stdenv.cc} $(readlink -f $out/lib/libvolk.so) + ''; + + nativeBuildInputs = [ + cmake + python3 + python3.pkgs.Mako + ]; + + doCheck = true; + + meta = with lib; { + homepage = "http://libvolk.org/"; + description = "The Vector Optimized Library of Kernels"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ doronbehar ]; + platforms = platforms.all; + }; +} diff --git a/pkgs/development/python-modules/Rtree/default.nix b/pkgs/development/python-modules/Rtree/default.nix index b5996a13d98..eb4dae8e3aa 100644 --- a/pkgs/development/python-modules/Rtree/default.nix +++ b/pkgs/development/python-modules/Rtree/default.nix @@ -1,4 +1,11 @@ -{ lib, stdenv, buildPythonPackage, fetchPypi, libspatialindex, numpy }: +{ lib, + stdenv, + buildPythonPackage, + fetchPypi, + libspatialindex, + numpy, + pytestCheckHook +}: buildPythonPackage rec { pname = "Rtree"; @@ -9,21 +16,23 @@ buildPythonPackage rec { sha256 = "be8772ca34699a9ad3fb4cfe2cfb6629854e453c10b3328039301bbfc128ca3e"; }; - propagatedBuildInputs = [ libspatialindex ]; + buildInputs = [ libspatialindex ]; patchPhase = '' - substituteInPlace rtree/core.py --replace \ + substituteInPlace rtree/finder.py --replace \ "find_library('spatialindex_c')" "'${libspatialindex}/lib/libspatialindex_c${stdenv.hostPlatform.extensions.sharedLibrary}'" ''; - # Tests appear to be broken due to mysterious memory unsafe issues. See #36760 - doCheck = false; - checkInputs = [ numpy ]; + checkInputs = [ + numpy + pytestCheckHook + ]; + pythonImportsCheck = [ "rtree" ]; meta = with lib; { description = "R-Tree spatial index for Python GIS"; homepage = "https://toblerity.org/rtree/"; - license = licenses.lgpl21; + license = licenses.mit; maintainers = with maintainers; [ bgamari ]; }; } diff --git a/pkgs/development/python-modules/convertdate/default.nix b/pkgs/development/python-modules/convertdate/default.nix index 0dee95541b0..5c232f66ace 100644 --- a/pkgs/development/python-modules/convertdate/default.nix +++ b/pkgs/development/python-modules/convertdate/default.nix @@ -9,7 +9,7 @@ buildPythonPackage rec { pname = "convertdate"; - version = "2.3.0"; + version = "2.3.1"; disabled = isPy27; @@ -17,8 +17,8 @@ buildPythonPackage rec { src = fetchFromGitHub { owner = "fitnr"; repo = pname; - rev = "v${version}"; - sha256 = "17j188zlp46zmq8qyy4z4f9v25l3zibkwzj8wp4fxqgimjnfj2nr"; + rev = version; + sha256 = "1g8sgd3xc9viy0kb1i4xp6bdn1hzwhrnk8kmismla88scivrhq32"; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/cryptography/default.nix b/pkgs/development/python-modules/cryptography/default.nix index 1038431d31c..32624e54c40 100644 --- a/pkgs/development/python-modules/cryptography/default.nix +++ b/pkgs/development/python-modules/cryptography/default.nix @@ -42,6 +42,7 @@ buildPythonPackage rec { nativeBuildInputs = lib.optionals (!isPyPy) [ cffi + ] ++ [ rustPlatform.cargoSetupHook setuptools-rust ] ++ (with rustPlatform; [ rust.cargo rust.rustc ]); diff --git a/pkgs/development/python-modules/powerline/default.nix b/pkgs/development/python-modules/powerline/default.nix index 63f5feada59..292c44cf58f 100644 --- a/pkgs/development/python-modules/powerline/default.nix +++ b/pkgs/development/python-modules/powerline/default.nix @@ -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 = [ diff --git a/pkgs/development/tools/analysis/coan/default.nix b/pkgs/development/tools/analysis/coan/default.nix index 1e0b79e0daa..3ef6c2b8459 100644 --- a/pkgs/development/tools/analysis/coan/default.nix +++ b/pkgs/development/tools/analysis/coan/default.nix @@ -28,6 +28,6 @@ stdenv.mkDerivation rec { ''; homepage = "http://coan2.sourceforge.net/"; license = licenses.bsd3; - platforms = platforms.linux; + platforms = platforms.all; }; } diff --git a/pkgs/development/tools/analysis/tfsec/default.nix b/pkgs/development/tools/analysis/tfsec/default.nix index f5450be16b0..09a77d0f935 100644 --- a/pkgs/development/tools/analysis/tfsec/default.nix +++ b/pkgs/development/tools/analysis/tfsec/default.nix @@ -2,13 +2,13 @@ buildGoPackage rec { pname = "tfsec"; - version = "0.39.5"; + version = "0.39.6"; src = fetchFromGitHub { owner = "tfsec"; repo = pname; rev = "v${version}"; - sha256 = "sha256-RDvwZyltPD21CQwZISOrLPVgQeRmPQc6/yssptS4XMw="; + sha256 = "sha256-2P+/y3iP/eMGGc0W1lHWWxO+uMy5gvlvjKzZ/8maJ9o="; }; goPackagePath = "github.com/tfsec/tfsec"; diff --git a/pkgs/development/tools/misc/pwndbg/default.nix b/pkgs/development/tools/misc/pwndbg/default.nix index 69ed17ab4b9..764fa667734 100644 --- a/pkgs/development/tools/misc/pwndbg/default.nix +++ b/pkgs/development/tools/misc/pwndbg/default.nix @@ -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 ]; }; } diff --git a/pkgs/development/tools/misc/terraform-ls/default.nix b/pkgs/development/tools/misc/terraform-ls/default.nix index eb823904eed..54adb5f8296 100644 --- a/pkgs/development/tools/misc/terraform-ls/default.nix +++ b/pkgs/development/tools/misc/terraform-ls/default.nix @@ -2,15 +2,15 @@ buildGoModule rec { pname = "terraform-ls"; - version = "0.14.0"; + version = "0.15.0"; src = fetchFromGitHub { owner = "hashicorp"; repo = pname; rev = "v${version}"; - sha256 = "sha256-p9q+cSnMN6Na+XZoYSHfE4SCNYOEavXE+eWIaxcD73k="; + sha256 = "sha256-/g62LSlaIK67oY6dI8S3Lni85eBBI6piqP2Fsq3HXWQ="; }; - vendorSha256 = "sha256-XOIs5Ng0FYz7OfwbrNiVN3GTIABqxlO8ITKGfnC+kWo="; + vendorSha256 = "sha256-U0jVdyY4SifPWkOkq3ohY/LvfGcYm4rI+tW1QEm39oo="; # tests fail in sandbox mode because of trying to download stuff from releases.hashicorp.com doCheck = false; diff --git a/pkgs/development/tools/renderizer/default.nix b/pkgs/development/tools/renderizer/default.nix index 22bf5fbe904..ccf1d4a37d6 100644 --- a/pkgs/development/tools/renderizer/default.nix +++ b/pkgs/development/tools/renderizer/default.nix @@ -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"; diff --git a/pkgs/games/vassal/default.nix b/pkgs/games/vassal/default.nix index 2a916094af4..cc9e9bd9856 100644 --- a/pkgs/games/vassal/default.nix +++ b/pkgs/games/vassal/default.nix @@ -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; }; } diff --git a/pkgs/os-specific/linux/fatrace/default.nix b/pkgs/os-specific/linux/fatrace/default.nix index a7f754a53ab..61044526e44 100644 --- a/pkgs/os-specific/linux/fatrace/default.nix +++ b/pkgs/os-specific/linux/fatrace/default.nix @@ -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 ]; diff --git a/pkgs/os-specific/windows/mcfgthreads/default.nix b/pkgs/os-specific/windows/mcfgthreads/default.nix index 122848a4e6c..45c80ab8979 100644 --- a/pkgs/os-specific/windows/mcfgthreads/default.nix +++ b/pkgs/os-specific/windows/mcfgthreads/default.nix @@ -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 ]; diff --git a/pkgs/servers/minio/default.nix b/pkgs/servers/minio/default.nix index 0758a863fce..a2ffe32acd2 100644 --- a/pkgs/servers/minio/default.nix +++ b/pkgs/servers/minio/default.nix @@ -2,16 +2,16 @@ buildGoModule rec { pname = "minio"; - version = "2021-03-10T05-11-33Z"; + version = "2021-03-12T00-00-47Z"; src = fetchFromGitHub { owner = "minio"; repo = "minio"; rev = "RELEASE.${version}"; - sha256 = "sha256-YwlVZE7TO9qr/8lwLXdZqjxy4NGxTkmLyKFDVlTZPqQ="; + sha256 = "sha256-7KHEmnrTw6SBhsImMjcv+b1wvFEg8AXgsuZTGp5iVis="; }; - vendorSha256 = "sha256-E+j+ysBKKSyTITmJwHieBcpXdF3+rtt4YS7OVPMC6vI="; + vendorSha256 = "sha256-tMt6XRj1dd+AHqWA6WGm5GBFGx+IsP1ijYCj8cmUXy0="; doCheck = false; diff --git a/pkgs/servers/monitoring/loki/default.nix b/pkgs/servers/monitoring/loki/default.nix index 370006a591e..d6e79831329 100644 --- a/pkgs/servers/monitoring/loki/default.nix +++ b/pkgs/servers/monitoring/loki/default.nix @@ -2,14 +2,14 @@ }: buildGoModule rec { - version = "2.1.0"; + version = "2.2.0"; pname = "grafana-loki"; src = fetchFromGitHub { rev = "v${version}"; owner = "grafana"; repo = "loki"; - sha256 = "O/3079a67j1i9pgf18SBx0iJcQPVmb0H+K/PzQVBCDQ="; + sha256 = "sha256-mEu9z3lhHSE0NMXXViX4OBbIiNba7/RPr+AFmIM77g4="; }; vendorSha256 = null; diff --git a/pkgs/servers/monitoring/prometheus/jitsi-exporter.nix b/pkgs/servers/monitoring/prometheus/jitsi-exporter.nix new file mode 100644 index 00000000000..b68b1681919 --- /dev/null +++ b/pkgs/servers/monitoring/prometheus/jitsi-exporter.nix @@ -0,0 +1,23 @@ +{ lib, buildGoModule, fetchgit, nixosTests }: + +buildGoModule rec { + pname = "jitsiexporter"; + version = "0.2.18"; + + src = fetchgit { + url = "https://git.xsfx.dev/prometheus/jitsiexporter"; + rev = "v${version}"; + sha256 = "1cf46wp96d9dwlwlffcgbcr0v3xxxfdv6il0zqkm2i7cfsfw0skf"; + }; + + vendorSha256 = null; + + passthru.tests = { inherit (nixosTests.prometheus-exporters) jitsi; }; + + meta = with lib; { + description = "Export Jitsi Videobridge metrics to Prometheus"; + homepage = "https://git.xsfx.dev/prometheus/jitsiexporter"; + license = licenses.mit; + maintainers = with maintainers; [ petabyteboy ]; + }; +} diff --git a/pkgs/servers/rtsp-simple-server/default.nix b/pkgs/servers/rtsp-simple-server/default.nix index 1cb5e37cb94..cf96edfe963 100644 --- a/pkgs/servers/rtsp-simple-server/default.nix +++ b/pkgs/servers/rtsp-simple-server/default.nix @@ -5,16 +5,16 @@ buildGoModule rec { pname = "rtsp-simple-server"; - version = "0.14.2"; + version = "0.15.0"; src = fetchFromGitHub { owner = "aler9"; repo = pname; rev = "v${version}"; - sha256 = "sha256-pnMUUxV4DM2YClwc24l+5Ehh5zc+qEOLTtiqh7c+8PI="; + sha256 = "sha256-U0wZ0NrvCQjMLDDjO6Jf6uu5FlHar7Td2zhoU2+MMkM="; }; - vendorSha256 = "sha256-oWWUEPEpMLqXucQwUvM6fyGCwttTIV6ZcCM2VZXnKuM="; + vendorSha256 = "sha256-dfAuq4iw3NQ4xaabPv7MQ88CYXgivRBeyvbmJ3SSjbI="; # Tests need docker doCheck = false; diff --git a/pkgs/shells/powershell/default.nix b/pkgs/shells/powershell/default.nix index 3f9d7130811..dfc4f94e12b 100644 --- a/pkgs/shells/powershell/default.nix +++ b/pkgs/shells/powershell/default.nix @@ -4,8 +4,8 @@ let platformString = if stdenv.isDarwin then "osx" else if stdenv.isLinux then "linux" else throw "unsupported platform"; - platformSha = if stdenv.isDarwin then "0zv02h3njphrs8kgmicy7w40mmhmigdfl38f2dpwrs6z67f8vrm2" - else if stdenv.isLinux then "0dka2q8ijg3ryzwmxapf8aq55d0sgaj6jj0rzj2738in9g4w2hbh" + platformSha = if stdenv.isDarwin then "0w44ws8b6zfixf7xz93hmplqsx18279n9x8j77y4rbzs13fldvsn" + else if stdenv.isLinux then "0xm7l49zhkz2fly3d751kjd5cy3ws9zji9i0061lkd06dvkch7jy" else throw "unsupported platform"; platformLdLibraryPath = if stdenv.isDarwin then "DYLD_FALLBACK_LIBRARY_PATH" else if stdenv.isLinux then "LD_LIBRARY_PATH" @@ -15,7 +15,7 @@ let platformString = if stdenv.isDarwin then "osx" in stdenv.mkDerivation rec { pname = "powershell"; - version = "7.1.0"; + version = "7.1.3"; src = fetchzip { url = "https://github.com/PowerShell/PowerShell/releases/download/v${version}/powershell-${version}-${platformString}-x64.tar.gz"; diff --git a/pkgs/tools/admin/clair/default.nix b/pkgs/tools/admin/clair/default.nix index 9460144998e..1ab4795dd62 100644 --- a/pkgs/tools/admin/clair/default.nix +++ b/pkgs/tools/admin/clair/default.nix @@ -2,16 +2,16 @@ buildGoModule rec { pname = "clair"; - version = "4.0.2"; + version = "4.0.3"; src = fetchFromGitHub { owner = "quay"; repo = pname; rev = "v${version}"; - sha256 = "sha256-uGvcr7TG/NCi0YoYZnQU11zOxXDhFTnCmLQVxOqmXLY="; + sha256 = "sha256-ztp3t55EOUQqTAEUZtHvHK8nTTVOAmYR9vN2hXLhpVw="; }; - vendorSha256 = "sha256-CO4U8uSQeHXLPj5PH/SsOI/LjT2Rs/mBHsvNTudx72I="; + vendorSha256 = "sha256-+0jp/TvUjpeJJxEs2drVkUb/ua9qqqxome4M9TkpfP4="; doCheck = false; diff --git a/pkgs/tools/admin/eksctl/default.nix b/pkgs/tools/admin/eksctl/default.nix index 6e1da0b591e..db6b1de456f 100644 --- a/pkgs/tools/admin/eksctl/default.nix +++ b/pkgs/tools/admin/eksctl/default.nix @@ -2,16 +2,16 @@ buildGoModule rec { pname = "eksctl"; - version = "0.39.0"; + version = "0.40.0"; src = fetchFromGitHub { owner = "weaveworks"; repo = pname; rev = version; - sha256 = "sha256-mq1/e9FW0jP6dY6zCBlPz5dBidKLS6IROBKESfHDvPI="; + sha256 = "sha256-2kxJcQ0kzIbXUSecDR5CRlgp0y59wftFPUwU1MSHOn0="; }; - vendorSha256 = "sha256-ANOeU3cFSwLcpdbpApM+j4r296ZGj/tuDV8oiMA7kMo="; + vendorSha256 = "sha256-m+qldNgY3+DKTFjxwKo4Sbi0F7y4xomiIuR+apek61Q="; doCheck = false; diff --git a/pkgs/tools/compression/zstd/default.nix b/pkgs/tools/compression/zstd/default.nix index e1437e3843d..2da5a725e71 100644 --- a/pkgs/tools/compression/zstd/default.nix +++ b/pkgs/tools/compression/zstd/default.nix @@ -22,9 +22,7 @@ stdenv.mkDerivation rec { patches = [ ./playtests-darwin.patch - ] # This I didn't upstream because if you use posix threads with MinGW it will - # work fine, and I'm not sure how to write the condition. - ++ lib.optional stdenv.hostPlatform.isWindows ./mcfgthreads-no-pthread.patch; + ]; postPatch = lib.optionalString (!static) '' substituteInPlace build/cmake/CMakeLists.txt \ diff --git a/pkgs/tools/compression/zstd/mcfgthreads-no-pthread.patch b/pkgs/tools/compression/zstd/mcfgthreads-no-pthread.patch deleted file mode 100644 index 69921c0c7ba..00000000000 --- a/pkgs/tools/compression/zstd/mcfgthreads-no-pthread.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/programs/Makefile b/programs/Makefile -index 7882fe8c..1e8237bb 100644 ---- a/programs/Makefile -+++ b/programs/Makefile -@@ -107,7 +107,7 @@ HAVE_THREAD := $(shell [ "$(HAVE_PTHREAD)" -eq "1" -o -n "$(filter Windows%,$(OS - ifeq ($(HAVE_THREAD), 1) - THREAD_MSG := ==> building with threading support - THREAD_CPP := -DZSTD_MULTITHREAD --THREAD_LD := -pthread -+THREAD_LD := - else - THREAD_MSG := $(NO_THREAD_MSG) - endif diff --git a/pkgs/tools/filesystems/reiser4progs/default.nix b/pkgs/tools/filesystems/reiser4progs/default.nix index 46c0120f64c..961a286729a 100644 --- a/pkgs/tools/filesystems/reiser4progs/default.nix +++ b/pkgs/tools/filesystems/reiser4progs/default.nix @@ -1,13 +1,13 @@ {lib, stdenv, fetchurl, libaal}: -let version = "2.0.1"; in +let version = "2.0.4"; in stdenv.mkDerivation rec { pname = "reiser4progs"; inherit version; src = fetchurl { url = "mirror://sourceforge/reiser4/reiser4-utils/${pname}-${version}.tar.gz"; - sha256 = "1r7m95mnp6xmp1j5k99jhmz6g9y2qq7cghlmdxsfbr3xviqfs45d"; + sha256 = "sha256-WmIkISnRp5BngSfPEKY95HVEt5TBtPKu+RMBwlLsnuA="; }; buildInputs = [libaal]; diff --git a/pkgs/tools/graphics/resvg/default.nix b/pkgs/tools/graphics/resvg/default.nix index 8c8164a7e8e..e0968dd6271 100644 --- a/pkgs/tools/graphics/resvg/default.nix +++ b/pkgs/tools/graphics/resvg/default.nix @@ -1,23 +1,26 @@ -{ lib, rustPlatform, fetchFromGitHub }: +{ stdenv, lib, rustPlatform, fetchFromGitHub, libiconv }: rustPlatform.buildRustPackage rec { pname = "resvg"; - version = "0.13.1"; + version = "0.14.0"; src = fetchFromGitHub { owner = "RazrFalcon"; repo = pname; rev = "v${version}"; - sha256 = "sha256-Jo+dx4+3GpEwOoE8HH0YahBmPvT9Oy2qXMvCJ/NZhF0="; + sha256 = "sha256-fd97w6yd9ZX2k8Vq+Vh6jouufGdFE02ZV8mb+BtA3tk="; }; - cargoSha256 = "sha256-8Es9NZYsC/9PZ6ytWZTAH42U3vxZtJERPSsno1s4TEc="; + cargoSha256 = "sha256-LlEYfjUINQW/YrhNp/Z+fdLQPcvrTjNFtDAk1gyAuj0="; + + buildInputs = lib.optionals stdenv.isDarwin [ libiconv ]; doCheck = false; meta = with lib; { description = "An SVG rendering library"; homepage = "https://github.com/RazrFalcon/resvg"; + changelog = "https://github.com/RazrFalcon/resvg/raw/v${version}/CHANGELOG.md"; license = licenses.mpl20; maintainers = [ maintainers.marsam ]; }; diff --git a/pkgs/tools/inputmethods/ibus-engines/ibus-anthy/default.nix b/pkgs/tools/inputmethods/ibus-engines/ibus-anthy/default.nix index 60b5d6778b4..d04de7bafeb 100644 --- a/pkgs/tools/inputmethods/ibus-engines/ibus-anthy/default.nix +++ b/pkgs/tools/inputmethods/ibus-engines/ibus-anthy/default.nix @@ -13,11 +13,11 @@ stdenv.mkDerivation rec { pname = "ibus-anthy"; - version = "1.5.11"; + version = "1.5.12"; src = fetchurl { url = "https://github.com/ibus/ibus-anthy/releases/download/${version}/${pname}-${version}.tar.gz"; - sha256 = "1zwgswpibh67sgbza8kvg03v06maxc08ihkgm5hmh333sjq9d5c0"; + sha256 = "sha256-6edY3dRq4pI3bqsXEYf6jyBjDwpXzRKKQSCP3N/fV7s="; }; buildInputs = [ diff --git a/pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix b/pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix index 00a499fb104..ac29545db3b 100644 --- a/pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix +++ b/pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix @@ -5,13 +5,13 @@ stdenv.mkDerivation rec { pname = "ibus-table"; - version = "1.12.3"; + version = "1.12.4"; src = fetchFromGitHub { owner = "kaio"; repo = "ibus-table"; rev = version; - sha256 = "sha256-iVbct7p+i8ifSQzOFUUnJU0RHX36cFiTlv7p79iawj8="; + sha256 = "sha256-2qST5k2+8gfSf1/FaxXW4qwSQgNw/QKM+1mMWDdrjCU="; }; postPatch = '' diff --git a/pkgs/tools/misc/direnv/default.nix b/pkgs/tools/misc/direnv/default.nix index ee068450344..5fa6b8db60e 100644 --- a/pkgs/tools/misc/direnv/default.nix +++ b/pkgs/tools/misc/direnv/default.nix @@ -2,16 +2,16 @@ buildGoModule rec { pname = "direnv"; - version = "2.27.0"; + version = "2.28.0"; src = fetchFromGitHub { owner = "direnv"; repo = "direnv"; rev = "v${version}"; - sha256 = "05vvn59xd2q4yjizh5fprjib5xqq58by80d5avsm8nb1qxf383b1"; + sha256 = "sha256-iZ3Lf7Yg+N9BWyLLF+MrT2gpPT9BTcp6pNMpfqwcZXo="; }; - vendorSha256 = "084x7d7sshcsyim76d6pl6127nlqacgwwnm965srl9y5w5nqzba6"; + vendorSha256 = "sha256-P8NLY1iGh86ntmYsTVlnNh5akdaM8nzcxDn6Nfmgr84="; # we have no bash at the moment for windows BASH_PATH = diff --git a/pkgs/tools/misc/fzf/default.nix b/pkgs/tools/misc/fzf/default.nix index 25542543d65..035b6f65517 100644 --- a/pkgs/tools/misc/fzf/default.nix +++ b/pkgs/tools/misc/fzf/default.nix @@ -2,13 +2,13 @@ buildGoModule rec { pname = "fzf"; - version = "0.25.1"; + version = "0.26.0"; src = fetchFromGitHub { owner = "junegunn"; repo = pname; rev = version; - sha256 = "085apa4msw8v8f57942xh7wfw3dkavrl9d58yj6i3yr75l3vg05r"; + sha256 = "0p9hslaawnqnnf1s6hj3vdh11ncq7mrb4w4i933mdkychw5jav38"; }; vendorSha256 = "0dd0qm1fxp3jnlrhfaas8fw87cj7rygaac35a9nk3xh2xsk7q35p"; diff --git a/pkgs/tools/networking/kapp/default.nix b/pkgs/tools/networking/kapp/default.nix index 13076338529..dfb64134871 100644 --- a/pkgs/tools/networking/kapp/default.nix +++ b/pkgs/tools/networking/kapp/default.nix @@ -1,13 +1,13 @@ { lib, buildGoModule, fetchFromGitHub }: buildGoModule rec { pname = "kapp"; - version = "0.35.0"; + version = "0.36.0"; src = fetchFromGitHub { owner = "vmware-tanzu"; repo = "carvel-kapp"; rev = "v${version}"; - sha256 = "1i4hpqpbwqb0yg3rx4z733zfslq3svmahfr39ss1ydylsipl02mg"; + sha256 = "sha256-hYKRfAnpHw8hHT70sOQSGlDj0dgzU0wlZpXA5f2BBfg="; }; vendorSha256 = null; diff --git a/pkgs/tools/networking/minio-client/default.nix b/pkgs/tools/networking/minio-client/default.nix index bdec1b2b4ac..1b2b0f2deb3 100644 --- a/pkgs/tools/networking/minio-client/default.nix +++ b/pkgs/tools/networking/minio-client/default.nix @@ -2,13 +2,13 @@ buildGoModule rec { pname = "minio-client"; - version = "2021-03-10T05-59-20Z"; + version = "2021-03-12T03-36-59Z"; src = fetchFromGitHub { owner = "minio"; repo = "mc"; rev = "RELEASE.${version}"; - sha256 = "sha256-IoCM2FA6oNiNT6zWspMEqgq4hZ8tAQVEAqouRlBe/ts="; + sha256 = "sha256-aIJjr7KaT4E4Q1Ho4D0emduJWFxdCXCodq7J43r0DMQ="; }; vendorSha256 = "sha256-aoRdtv/Q7vjn0M7iSYAuyu/3pEH30x6D39xTHqQPvuo="; diff --git a/pkgs/tools/package-management/emplace/default.nix b/pkgs/tools/package-management/emplace/default.nix index 798601d1a5b..5a8ca2d9a8a 100644 --- a/pkgs/tools/package-management/emplace/default.nix +++ b/pkgs/tools/package-management/emplace/default.nix @@ -2,16 +2,16 @@ rustPlatform.buildRustPackage rec { pname = "emplace"; - version = "1.2.0"; + version = "1.2.1"; src = fetchFromGitHub { owner = "tversteeg"; repo = pname; rev = "v${version}"; - sha256 = "sha256-vA+Y4j9Flcrizqh61+4X70FzF5/wK2WVHQRsAUQzKnU="; + sha256 = "sha256-5t47QrYWbm8A4E1GhqZwME7rmSfU1SYVniRGSrcRpvk="; }; - cargoSha256 = "sha256-zGdjMpB7h+/RdM+wXffUuAyHnks6umyJmzUrANmqAS8="; + cargoSha256 = "sha256-/GFpjovPGEgkfJ53+wR8CBDXiQQPDCiIaRG2Ka71dhQ="; meta = with lib; { description = "Mirror installed software on multiple machines"; diff --git a/pkgs/tools/security/age/default.nix b/pkgs/tools/security/age/default.nix index 74a2bb7a620..e15618da3f1 100644 --- a/pkgs/tools/security/age/default.nix +++ b/pkgs/tools/security/age/default.nix @@ -2,14 +2,14 @@ buildGoModule rec { pname = "age"; - version = "1.0.0-beta6"; - vendorSha256 = "sha256-FTByNpLkWWHAWe5wVDRBGtKap/5+XGHeBMQAIdlPCkA="; + version = "1.0.0-rc.1"; + vendorSha256 = "1qx6pkhq00y0lsi6f82g8hxxh65zk1c0ls91ap6hdlj7ch79bhl2"; src = fetchFromGitHub { owner = "FiloSottile"; repo = "age"; rev = "v${version}"; - sha256 = "sha256-1LCcCEf2/R0am0jpA8yKl44+AoUFkbepxp9V6/nZkBQ="; + sha256 = "1n25wip4qnd3v9ial1apc2ybx10b9z6lwz7flyss6kvj3x5g9jd1"; }; meta = with lib; { diff --git a/pkgs/tools/security/teler/default.nix b/pkgs/tools/security/teler/default.nix index e2a895f0747..f44b7abf523 100644 --- a/pkgs/tools/security/teler/default.nix +++ b/pkgs/tools/security/teler/default.nix @@ -5,16 +5,16 @@ buildGoModule rec { pname = "teler"; - version = "1.0.3"; + version = "1.1.0"; src = fetchFromGitHub { owner = "kitabisa"; repo = "teler"; rev = "v${version}"; - sha256 = "sha256-6OeGlpimQtw4w26HRzw2wmd3wjASY199p8XXPD/JMy8="; + sha256 = "sha256-0tx/oyHl6s1mj7NyWMZGCJoSuOeB+BMlBrnGY4IN/i4="; }; - vendorSha256 = "sha256-L+wjurURpesCA2IK0r1sxvOUvNJT1wiRp75kpe6LH5s="; + vendorSha256 = "sha256-KvUnDInUqFW7FypgsppIBQZKNu6HVsEeHtGwdqYtoys="; # test require internet access doCheck = false; diff --git a/pkgs/tools/security/terrascan/default.nix b/pkgs/tools/security/terrascan/default.nix index ab4a7197647..0d7c3d2863c 100644 --- a/pkgs/tools/security/terrascan/default.nix +++ b/pkgs/tools/security/terrascan/default.nix @@ -5,16 +5,16 @@ buildGoModule rec { pname = "terrascan"; - version = "1.3.3"; + version = "1.4.0"; src = fetchFromGitHub { owner = "accurics"; repo = pname; rev = "v${version}"; - sha256 = "sha256-mPd4HsWbPUNJTUNjQ5zQztoXZy2b9iLksdGKAjp0A58="; + sha256 = "sha256-YUrvdleH332fWDgq8AwUdXkFC7m9ap+OVuQhKlxZfII="; }; - vendorSha256 = "sha256-eNQTJHqOCOTAPO+vil6rkV9bNWZIdXxGQPE4IpETFtA="; + vendorSha256 = "sha256-CzJ83MsBetrzbBT+fmz8F8MjdrManJAd4xpykh/2938="; # tests want to download a vulnerable Terraform project doCheck = false; diff --git a/pkgs/tools/system/fio/default.nix b/pkgs/tools/system/fio/default.nix index a71bef4809c..d34f0d4b737 100644 --- a/pkgs/tools/system/fio/default.nix +++ b/pkgs/tools/system/fio/default.nix @@ -4,13 +4,13 @@ stdenv.mkDerivation rec { pname = "fio"; - version = "3.25"; + version = "3.26"; src = fetchFromGitHub { owner = "axboe"; repo = "fio"; rev = "fio-${version}"; - sha256 = "1f20ihynwnz8jqqlr73i5glr8ziplz4mmcjgk340mj2yqqcnsqag"; + sha256 = "sha256-/Si0McndJ6Xp3ifDr+BStv89LmZyAgof95QkHGT8MGQ="; }; buildInputs = [ python zlib ] diff --git a/pkgs/tools/typesetting/scdoc/default.nix b/pkgs/tools/typesetting/scdoc/default.nix index 1b22b781d54..1e6c86c1992 100644 --- a/pkgs/tools/typesetting/scdoc/default.nix +++ b/pkgs/tools/typesetting/scdoc/default.nix @@ -1,12 +1,14 @@ -{ lib, stdenv, fetchurl }: +{ lib, stdenv, fetchFromSourcehut }: stdenv.mkDerivation rec { pname = "scdoc"; version = "1.11.1"; - src = fetchurl { - url = "https://git.sr.ht/~sircmpwn/scdoc/archive/${version}.tar.gz"; - sha256 = "007pm3gspvya58cwb12wpnrm9dq5p28max2s0b2y9rq80nqgqag5"; + src = fetchFromSourcehut { + owner = "~sircmpwn"; + repo = pname; + rev = version; + sha256 = "1g37j847j3h4a4qbbfbr6vvsxpifj9v25jgv25nd71d1n0dxlhvk"; }; postPatch = '' diff --git a/pkgs/tools/wayland/wev/default.nix b/pkgs/tools/wayland/wev/default.nix index 83e4113f7ea..69288a1bc8c 100644 --- a/pkgs/tools/wayland/wev/default.nix +++ b/pkgs/tools/wayland/wev/default.nix @@ -1,6 +1,6 @@ { lib , stdenv -, fetchurl +, fetchFromSourcehut , pkg-config , scdoc , wayland @@ -12,9 +12,11 @@ stdenv.mkDerivation rec { pname = "wev"; version = "1.0.0"; - src = fetchurl { - url = "https://git.sr.ht/~sircmpwn/wev/archive/${version}.tar.gz"; - sha256 = "0vlxdkb59v6nb10j28gh1a56sx8jk7ak7liwzv911kpmygnls03g"; + src = fetchFromSourcehut { + owner = "~sircmpwn"; + repo = pname; + rev = version; + sha256 = "0l71v3fzgiiv6xkk365q1l08qvaymxd4kpaya6r2g8yzkr7i2hms"; }; nativeBuildInputs = [ pkg-config scdoc wayland ]; diff --git a/pkgs/tools/wayland/wlsunset/default.nix b/pkgs/tools/wayland/wlsunset/default.nix index 692ddd37cf3..931f394d689 100644 --- a/pkgs/tools/wayland/wlsunset/default.nix +++ b/pkgs/tools/wayland/wlsunset/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetchurl, meson, pkg-config, ninja, wayland +{ lib, stdenv, fetchFromSourcehut, meson, pkg-config, ninja, wayland , wayland-protocols }: @@ -6,9 +6,11 @@ stdenv.mkDerivation rec { pname = "wlsunset"; version = "0.1.0"; - src = fetchurl { - url = "https://git.sr.ht/~kennylevinsen/wlsunset/archive/${version}.tar.gz"; - sha256 = "0g7mk14hlbwbhq6nqr84452sbgcja3hdxsqf0vws4njhfjgqiv3q"; + src = fetchFromSourcehut { + owner = "~kennylevinsen"; + repo = pname; + rev = version; + sha256 = "12snizvf49y40cirhr2brgyldhsykv4k2gnln2sdrajqzhrc98v6"; }; nativeBuildInputs = [ meson pkg-config ninja wayland ]; diff --git a/pkgs/tools/wayland/wshowkeys/default.nix b/pkgs/tools/wayland/wshowkeys/default.nix index 1c095ca297a..5f0025d6072 100644 --- a/pkgs/tools/wayland/wshowkeys/default.nix +++ b/pkgs/tools/wayland/wshowkeys/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetchurl +{ lib, stdenv, fetchFromSourcehut , meson, pkg-config, wayland, ninja , cairo, libinput, pango, wayland-protocols, libxkbcommon }: @@ -10,9 +10,11 @@ in stdenv.mkDerivation rec { pname = "wshowkeys-unstable"; inherit version; - src = fetchurl { - url = "https://git.sr.ht/~sircmpwn/wshowkeys/archive/${commit}.tar.gz"; - sha256 = "0iplmw13jmc8d3m307kc047zq8yqwm42kw9fpm270562i3p0qk4d"; + src = fetchFromSourcehut { + owner = "~sircmpwn"; + repo = "wshowkeys"; + rev = commit; + sha256 = "10kafdja5cwbypspwhvaxjz3hvf51vqjzbgdasl977193cvxgmbs"; }; nativeBuildInputs = [ meson pkg-config wayland ninja ]; diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 03f78cabdbb..51129d4c97b 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -240,16 +240,24 @@ mapAliases ({ gnome_doc_utils = gnome-doc-utils; # added 2018-02-25 gnome_themes_standard = gnome-themes-standard; # added 2018-02-25 gnunet_git = throw "gnunet_git was removed due to gnunet becoming stable"; # added 2019-05-27 - gnuradio-nacl = gr-nacl; # added 2019-05-27 - gnuradio-gsm = gr-gsm; # added 2019-05-27 - gnuradio-ais = gr-ais; # added 2019-05-27 - gnuradio-limesdr = gr-limesdr; # added 2019-05-27 - gnuradio-rds = gr-rds; # added 2019-05-27 - gnuradio-osmosdr = gr-osmosdr; # added 2019-05-27 - # added 20-10-2020 + # Added 2020-10-16 gnuradio-with-packages = gnuradio3_7.override { - extraPackages = [ gr-nacl gr-gsm gr-ais gr-limesdr gr-rds gr-osmosdr ]; + extraPackages = lib.attrVals [ + "osmosdr" "ais" "gsm" "nacl" "rds" "limesdr" + ] gnuradio3_7Packages; }; + gnuradio-nacl = gnuradio3_7.pkgs.nacl; # added 2019-05-27, changed 2020-10-16 + gnuradio-gsm = gnuradio3_7.pkgs.gsm; # added 2019-05-27, changed 2020-10-16 + gnuradio-ais = gnuradio3_7.pkgs.ais; # added 2019-05-27, changed 2020-10-16 + gnuradio-limesdr = gnuradio3_7.pkgs.limesdr; # added 2019-05-27, changed 2020-10-16 + gnuradio-rds = gnuradio3_7.pkgs.rds; # added 2019-05-27, changed 2020-10-16 + gnuradio-osmosdr = gnuradio3_7.pkgs.osmosdr; # added 2019-05-27, changed 2020-10-16 + gr-nacl = gnuradio3_7.pkgs.nacl; # added 2019-05-27, changed 2020-10-16 + gr-gsm = gnuradio3_7.pkgs.gsm; # added 2019-05-27, changed 2020-10-16 + gr-ais = gnuradio3_7.pkgs.ais; # added 2019-05-27, changed 2020-10-16 + gr-limesdr = gnuradio3_7.pkgs.limesdr; # added 2019-05-27, changed 2020-10-16 + gr-rds = gnuradio3_7.pkgs.rds; # added 2019-05-27, changed 2020-10-16 + gr-osmosdr = gnuradio3_7.pkgs.osmosdr; # added 2019-05-27, changed 2020-10-16 gnustep-make = gnustep.make; # added 2016-7-6 gnupg20 = throw "gnupg20 has been removed from nixpkgs as upstream dropped support on 2017-12-31";# added 2020-07-12 gnuvd = throw "gnuvd was removed because the backend service is missing"; # added 2020-01-14 @@ -302,6 +310,9 @@ mapAliases ({ json_glib = json-glib; # added 2018-02-25 kdecoration-viewer = throw "kdecoration-viewer has been removed from nixpkgs, as there is no upstream activity"; # 2020-06-16 k9copy = throw "k9copy has been removed from nixpkgs, as there is no upstream activity"; # 2020-11-06 + kodiGBM = kodi-gbm; + kodiPlain = kodi; + kodiPlainWayland = kodi-wayland; julia_07 = throw "julia_07 is deprecated in favor of julia_10 LTS"; # added 2020-09-15 julia_11 = throw "julia_11 is deprecated in favor of latest Julia version"; # added 2020-09-15 kdeconnect = plasma5Packages.kdeconnect-kde; # added 2020-10-28 @@ -781,7 +792,8 @@ mapAliases ({ xara = throw "xara has been removed from nixpkgs. Unmaintained since 2006"; # added 2020-06-24 xbmc = kodi; # added 2018-04-25 xbmcPlain = kodiPlain; # added 2018-04-25 - xbmcPlugins = kodiPlugins; # added 2018-04-25 + xbmcPlugins = kodiPackages; # added 2018-04-25 + kodiPlugins = kodiPackages; # added 2021-03-09; xmonad_log_applet_gnome3 = xmonad_log_applet; # added 2018-05-01 xmpppy = throw "xmpppy has been removed from nixpkgs as it is unmaintained and python2-only"; pyIRCt = throw "pyIRCt has been removed from nixpkgs as it is unmaintained and python2-only"; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 4ceafe06a1f..53f1c87ff33 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2780,7 +2780,9 @@ in precice = callPackage ../development/libraries/precice { }; - pueue = callPackage ../applications/misc/pueue { }; + pueue = callPackage ../applications/misc/pueue { + inherit (darwin.apple_sdk.frameworks) SystemConfiguration; + }; pixiecore = callPackage ../tools/networking/pixiecore {}; @@ -3956,6 +3958,8 @@ in volctl = callPackage ../tools/audio/volctl { }; + volk = callPackage ../development/libraries/volk { }; + vorta = libsForQt5.callPackage ../applications/backup/vorta { }; utahfs = callPackage ../applications/networking/utahfs { }; @@ -13146,7 +13150,10 @@ in uefi-firmware-parser = callPackage ../development/tools/analysis/uefi-firmware-parser { }; - uhd = callPackage ../applications/radio/uhd { }; + uhd3_5 = callPackage ../applications/radio/uhd/3.5.nix { }; + uhd = callPackage ../applications/radio/uhd { + boost = boost17x; + }; uisp = callPackage ../development/tools/misc/uisp { }; @@ -16781,13 +16788,7 @@ in qm-dsp = callPackage ../development/libraries/audio/qm-dsp { }; - qradiolink = callPackage ../applications/radio/qradiolink { - # 3.8 support is not ready yet: - # https://github.com/qradiolink/qradiolink/issues/67#issuecomment-703222573 - # The non minimal build is used because the 'qtgui' component is needed. - # gr-osmosdr is using the same gnuradio as of now. - gnuradio = gnuradio3_7-unwrapped; - }; + qradiolink = callPackage ../applications/radio/qradiolink { }; qrupdate = callPackage ../development/libraries/qrupdate { }; @@ -18603,6 +18604,7 @@ in prometheus-fritzbox-exporter = callPackage ../servers/monitoring/prometheus/fritzbox-exporter.nix { }; prometheus-gitlab-ci-pipelines-exporter = callPackage ../servers/monitoring/prometheus/gitlab-ci-pipelines-exporter.nix { }; prometheus-haproxy-exporter = callPackage ../servers/monitoring/prometheus/haproxy-exporter.nix { }; + prometheus-jitsi-exporter = callPackage ../servers/monitoring/prometheus/jitsi-exporter.nix { }; prometheus-json-exporter = callPackage ../servers/monitoring/prometheus/json-exporter.nix { }; prometheus-keylight-exporter = callPackage ../servers/monitoring/prometheus/keylight-exporter.nix { }; prometheus-knot-exporter = callPackage ../servers/monitoring/prometheus/knot-exporter.nix { }; @@ -22340,81 +22342,97 @@ in gksu = callPackage ../applications/misc/gksu { }; - gnss-sdr = callPackage ../applications/radio/gnss-sdr { - boost = boost166; - gnuradio = gnuradio3_7-unwrapped; - }; + gnss-sdr = callPackage ../applications/radio/gnss-sdr { }; - gnuradio-unwrapped = callPackage ../applications/radio/gnuradio { - inherit (darwin.apple_sdk.frameworks) CoreAudio; - python = python3; - }; - # A build without gui components and other utilites not needed for end user - # libraries - gnuradioMinimal = gnuradio-unwrapped.override { - features = { - gnuradio-companion = false; - python-support = false; - gr-ctrlport = false; - examples = false; - gr-qtgui = false; - gr-utils = false; - gr-modtool = false; - sphinx = false; - doxygen = false; + gnuradio = callPackage ../applications/radio/gnuradio/wrapper.nix { + unwrapped = callPackage ../applications/radio/gnuradio { + inherit (darwin.apple_sdk.frameworks) CoreAudio; + python = python3; + boost = boost17x; }; }; - gnuradio = callPackage ../applications/radio/gnuradio/wrapper.nix { - unwrapped = gnuradio-unwrapped; + gnuradioPackages = lib.recurseIntoAttrs gnuradio.pkgs; + # A build without gui components and other utilites not needed for end user + # libraries + gnuradioMinimal = gnuradio.override { + wrap = false; + unwrapped = gnuradio.unwrapped.override { + volk = volk.override { + # So it will not reference python + enableModTool = false; + }; + features = { + gnuradio-companion = false; + python-support = false; + examples = false; + gr-qtgui = false; + gr-utils = false; + gr-modtool = false; + gr-blocktool = false; + sphinx = false; + doxygen = false; + }; + }; }; - gnuradio3_7-unwrapped = callPackage ../applications/radio/gnuradio/3.7.nix { - inherit (darwin.apple_sdk.frameworks) CoreAudio; - python = python2; + gnuradio3_8 = callPackage ../applications/radio/gnuradio/wrapper.nix { + unwrapped = callPackage ../applications/radio/gnuradio/3.8.nix { + inherit (darwin.apple_sdk.frameworks) CoreAudio; + python = python3; + boost = boost17x; + }; }; + gnuradio3_8Packages = lib.recurseIntoAttrs gnuradio3_8.pkgs; # A build without gui components and other utilites not needed if gnuradio is # used as a c++ library. - gnuradio3_7Minimal = gnuradio3_7-unwrapped.override { - features = { - gnuradio-companion = false; - python-support = false; - gr-ctrlport = false; - gr-qtgui = false; - gr-utils = false; - sphinx = false; - doxygen = false; - gr-wxgui = false; + gnuradio3_8Minimal = gnuradio3_8.override { + wrap = false; + unwrapped = gnuradio3_8.unwrapped.override { + volk = volk.override { + enableModTool = false; + }; + features = { + gnuradio-companion = false; + python-support = false; + examples = false; + gr-qtgui = false; + gr-utils = false; + gr-modtool = false; + sphinx = false; + doxygen = false; + }; }; }; gnuradio3_7 = callPackage ../applications/radio/gnuradio/wrapper.nix { - unwrapped = gnuradio3_7-unwrapped; + unwrapped = callPackage ../applications/radio/gnuradio/3.7.nix { + inherit (darwin.apple_sdk.frameworks) CoreAudio; + python = python2; + # Incompatible with uhd4+ + uhd = uhd3_5; + }; + }; + gnuradio3_7Packages = lib.recurseIntoAttrs gnuradio3_7.pkgs; + # A build without gui components and other utilites not needed if gnuradio is + # used as a c++ library. + gnuradio3_7Minimal = gnuradio3_7.override { + wrap = false; + unwrapped = gnuradio3_7.unwrapped.override { + volk = volk.override { + enableModTool = false; + }; + features = { + gnuradio-companion = false; + python-support = false; + gr-qtgui = false; + gr-utils = false; + sphinx = false; + doxygen = false; + gr-wxgui = false; + }; + }; }; grandorgue = callPackage ../applications/audio/grandorgue { }; - gr-nacl = callPackage ../applications/radio/gnuradio/nacl.nix { - gnuradio = gnuradio3_7-unwrapped; - }; - - gr-gsm = callPackage ../applications/radio/gnuradio/gsm.nix { - gnuradio = gnuradio3_7-unwrapped; - }; - - gr-ais = callPackage ../applications/radio/gnuradio/ais.nix { - gnuradio = gnuradio3_7-unwrapped; - }; - - gr-limesdr = callPackage ../applications/radio/gnuradio/limesdr.nix { - gnuradio = gnuradio3_7-unwrapped; - }; - - gr-rds = callPackage ../applications/radio/gnuradio/rds.nix { - gnuradio = gnuradio3_7-unwrapped; - }; - - gr-osmosdr = callPackage ../applications/radio/gnuradio/osmosdr.nix { - gnuradio = gnuradio3_7-unwrapped; - }; - goldendict = libsForQt5.callPackage ../applications/misc/goldendict { inherit (darwin) libiconv; }; @@ -22441,14 +22459,7 @@ in gpx = callPackage ../applications/misc/gpx { }; - gqrx = libsForQt514.callPackage ../applications/radio/gqrx { - gnuradio = gnuradio3_7Minimal; - # Use the same gnuradio for gr-osmosdr as well - gr-osmosdr = gr-osmosdr.override { - gnuradio = gnuradio3_7Minimal; - pythonSupport = false; - }; - }; + gqrx = callPackage ../applications/radio/gqrx { }; gpx-viewer = callPackage ../applications/misc/gpx-viewer { }; @@ -23296,9 +23307,7 @@ in inkscape-extensions = recurseIntoAttrs (callPackages ../applications/graphics/inkscape/extensions.nix {}); - inspectrum = libsForQt514.callPackage ../applications/radio/inspectrum { - gnuradio = gnuradioMinimal; - }; + inspectrum = callPackage ../applications/radio/inspectrum { }; ion3 = callPackage ../applications/window-managers/ion-3 { lua = lua5_1; @@ -26183,33 +26192,6 @@ in cores = retroArchCores; }; - wrapKodi = { kodi }: callPackage ../applications/video/kodi/wrapper.nix { - inherit kodi; - plugins = let inherit (lib) optional optionals; in with kodiPlugins; - ([] - ++ optional (config.kodi.enableAdvancedLauncher or false) advanced-launcher - ++ optional (config.kodi.enableAdvancedEmulatorLauncher or false) - advanced-emulator-launcher - ++ optionals (config.kodi.enableControllers or false) - (with controllers; - [ default dreamcast gba genesis mouse n64 nes ps snes ]) - ++ optional (config.kodi.enableExodus or false) exodus - ++ optionals (config.kodi.enableHyperLauncher or false) - (with hyper-launcher; [ plugin service pdfreader ]) - ++ optional (config.kodi.enableJoystick or false) joystick - ++ optional (config.kodi.enableOSMCskin or false) osmc-skin - ++ optional (config.kodi.enableSVTPlay or false) svtplay - ++ optional (config.kodi.enableSteamController or false) steam-controller - ++ optional (config.kodi.enableSteamLauncher or false) steam-launcher - ++ optional (config.kodi.enablePVRHTS or false) pvr-hts - ++ optional (config.kodi.enablePVRHDHomeRun or false) pvr-hdhomerun - ++ optional (config.kodi.enablePVRIPTVSimple or false) pvr-iptvsimple - ++ optional (config.kodi.enableInputStreamAdaptive or false) inputstream-adaptive - ++ optional (config.kodi.enableVFSSFTP or false) vfs-sftp - ++ optional (config.kodi.enableVFSLibarchive or false) vfs-libarchive - ); - }; - wsjtx = qt5.callPackage ../applications/radio/wsjtx { }; wxhexeditor = callPackage ../applications/editors/wxhexeditor { @@ -26267,28 +26249,16 @@ in gtk = gtk2; }; - kodiPlain = callPackage ../applications/video/kodi { }; + kodiPackages = recurseIntoAttrs (kodi.packages); - kodiPlainWayland = callPackage ../applications/video/kodi { - useWayland = true; + kodi = callPackage ../applications/video/kodi { }; + + kodi-wayland = callPackage ../applications/video/kodi { + waylandSupport = true; }; - kodiGBM = callPackage ../applications/video/kodi { - useGbm = true; - }; - - kodiPlugins = recurseIntoAttrs (callPackage ../applications/video/kodi/plugins.nix {}); - - kodi = wrapKodi { - kodi = kodiPlain; - }; - - kodi-wayland = wrapKodi { - kodi = kodiPlainWayland; - }; - - kodi-gbm = wrapKodi { - kodi = kodiGBM; + kodi-gbm = callPackage ../applications/video/kodi { + gbmSupport = true; }; kodi-cli = callPackage ../tools/misc/kodi-cli { }; diff --git a/pkgs/top-level/gnuradio-packages.nix b/pkgs/top-level/gnuradio-packages.nix new file mode 100644 index 00000000000..e5c2c8be313 --- /dev/null +++ b/pkgs/top-level/gnuradio-packages.nix @@ -0,0 +1,47 @@ +{ lib +, stdenv +, newScope +, gnuradio # unwrapped gnuradio +}: + +lib.makeScope newScope ( self: + +let + # Modeled after qt's + mkDerivationWith = import ../development/gnuradio-modules/mkDerivation.nix { + inherit lib; + unwrapped = gnuradio; + }; + mkDerivation = mkDerivationWith stdenv.mkDerivation; + + callPackage = self.newScope { + inherit (gnuradio) + # Packages that are potentially overriden and used as deps here. + boost + uhd + volk + ; + inherit mkDerivationWith mkDerivation; + }; + +in { + + inherit callPackage mkDerivation mkDerivationWith; + + ### Packages + + inherit gnuradio; + + osmosdr = callPackage ../development/gnuradio-modules/osmosdr/default.nix { }; + + ais = callPackage ../development/gnuradio-modules/ais/default.nix { }; + + gsm = callPackage ../development/gnuradio-modules/gsm/default.nix { }; + + nacl = callPackage ../development/gnuradio-modules/nacl/default.nix { }; + + rds = callPackage ../development/gnuradio-modules/rds/default.nix { }; + + limesdr = callPackage ../development/gnuradio-modules/limesdr/default.nix { }; + +}) diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 5e8a9cf144b..fa5a2fef620 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -124,6 +124,8 @@ in { venvShellHook wheelUnpackHook; + pytestCheckHook_6_1 = self.pytestCheckHook.override { pytest = self.pytest_6_1; }; + # helpers # We use build packages because we are making a setup hook to be used as a @@ -251,7 +253,7 @@ in { aiohomekit = callPackage ../development/python-modules/aiohomekit { }; aiohttp = callPackage ../development/python-modules/aiohttp { - pytestCheckHook = self.pytestCheckHook.override { pytest = self.pytest_6_1; }; + pytestCheckHook = self.pytestCheckHook_6_1; }; aiohttp-cors = callPackage ../development/python-modules/aiohttp-cors { }; @@ -537,7 +539,7 @@ in { async-timeout = callPackage ../development/python-modules/async_timeout { }; async-upnp-client = callPackage ../development/python-modules/async-upnp-client { - pytestCheckHook = self.pytestCheckHook.override { pytest = self.pytest_6_1; }; + pytestCheckHook = self.pytestCheckHook_6_1; }; asyncwhois = callPackage ../development/python-modules/asyncwhois { }; @@ -8336,7 +8338,7 @@ in { trimesh = callPackage ../development/python-modules/trimesh { }; trio = callPackage ../development/python-modules/trio { - pytestCheckHook = self.pytestCheckHook.override { pytest = self.pytest_6_1; }; + pytestCheckHook = self.pytestCheckHook_6_1; }; trollius = callPackage ../development/python-modules/trollius { }; @@ -8528,7 +8530,9 @@ in { urlgrabber = callPackage ../development/python-modules/urlgrabber { }; - urllib3 = callPackage ../development/python-modules/urllib3 { }; + urllib3 = callPackage ../development/python-modules/urllib3 { + pytestCheckHook = self.pytestCheckHook_6_1; + }; urwid = callPackage ../development/python-modules/urwid { }; @@ -8732,11 +8736,7 @@ in { webthing = callPackage ../development/python-modules/webthing { }; werkzeug = callPackage ../development/python-modules/werkzeug { - pytestCheckHook = self.pytestCheckHook.override { pytest = self.pytest_6_1; }; - pytest-timeout = self.pytest-timeout.override { - pytest = self.pytest_6_1; - pytestCheckHook = self.pytestCheckHook.override { pytest = self.pytest_6_1; }; - }; + pytestCheckHook = self.pytestCheckHook_6_1; }; west = callPackage ../development/python-modules/west { };