Merge branch 'staging-next' into staging

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

View file

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

View file

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

View file

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

View file

@ -0,0 +1,40 @@
{ config, lib, pkgs, options }:
with lib;
let
cfg = config.services.prometheus.exporters.jitsi;
in
{
port = 9700;
extraOpts = {
url = mkOption {
type = types.str;
default = "http://localhost:8080/colibri/stats";
description = ''
Jitsi Videobridge metrics URL to monitor.
This is usually /colibri/stats on port 8080 of the jitsi videobridge host.
'';
};
interval = mkOption {
type = types.str;
default = "30s";
example = "1min";
description = ''
How often to scrape new data
'';
};
};
serviceOpts = {
serviceConfig = {
ExecStart = ''
${pkgs.prometheus-jitsi-exporter}/bin/jitsiexporter \
-url ${escapeShellArg cfg.url} \
-host ${cfg.listenAddress} \
-port ${toString cfg.port} \
-interval ${toString cfg.interval} \
${concatStringsSep " \\\n " cfg.extraFlags}
'';
};
};
}

View file

@ -233,6 +233,29 @@ let
''; '';
}; };
jitsi = {
exporterConfig = {
enable = true;
};
metricProvider = {
systemd.services.prometheus-jitsi-exporter.after = [ "jitsi-videobridge2.service" ];
services.jitsi-videobridge = {
enable = true;
apis = [ "colibri" "rest" ];
};
};
exporterTest = ''
wait_for_unit("jitsi-videobridge2.service")
wait_for_open_port(8080)
wait_for_unit("prometheus-jitsi-exporter.service")
wait_for_open_port(9700)
wait_until_succeeds(
'journalctl -eu prometheus-jitsi-exporter.service -o cat | grep -q "key=participants"'
)
succeed("curl -sSf 'localhost:9700/metrics' | grep -q 'jitsi_participants 0'")
'';
};
json = { json = {
exporterConfig = { exporterConfig = {
enable = true; enable = true;

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,12 +1,14 @@
{ lib, stdenv, rustPlatform, fetchurl, pkg-config, ncurses, openssl, Security }: { lib, stdenv, rustPlatform, fetchFromSourcehut, pkg-config, ncurses, openssl, Security }:
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "asuka"; pname = "asuka";
version = "0.8.1"; version = "0.8.1";
src = fetchurl { src = fetchFromSourcehut {
url = "https://git.sr.ht/~julienxx/${pname}/archive/${version}.tar.gz"; owner = "~julienxx";
sha256 = "07i80qmdpwfdgwrk1gzs10wln91v23qjrsk0x134xf5mjnakxc06"; repo = pname;
rev = version;
sha256 = "1y8v4qc5dng3v9k0bky1xlf3qi9pk2vdsi29lff4ha5310467f0k";
}; };
cargoSha256 = "0p0x4ch04kydg76bfal5zqzr9hvn5268wf3k2v9h7g8r4y8xqlhw"; cargoSha256 = "0p0x4ch04kydg76bfal5zqzr9hvn5268wf3k2v9h7g8r4y8xqlhw";

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -0,0 +1,284 @@
{ lib, stdenv
, fetchFromGitHub
, fetchpatch
, cmake
# Remove gcc and python references
, removeReferencesTo
, pkg-config
, volk
, cppunit
, swig
, orc
, boost
, log4cpp
, mpir
, doxygen
, python
, codec2
, gsm
, fftwFloat
, alsaLib
, libjack2
, CoreAudio
, uhd
, SDL
, gsl
, cppzmq
, zeromq
# Needed only if qt-gui is disabled, from some reason
, icu
# GUI related
, gtk3
, pango
, gobject-introspection
, cairo
, qt5
, libsForQt5
# Features available to override, the list of them is in featuresInfo. They
# are all turned on by default.
, features ? {}
# If one wishes to use a different src or name for a very custom build
, overrideSrc ? {}
, pname ? "gnuradio"
, versionAttr ? {
major = "3.8";
minor = "2";
patch = "0";
}
# We use our build of volk and not the one bundled with the release
, fetchSubmodules ? false
}:
let
sourceSha256 = "SFDjtyQRp0fXijZukpLYtISpx8imxedlYN9mRibv1eA=";
featuresInfo = {
# Needed always
basic = {
native = [
cmake
pkg-config
orc
];
runtime = [
boost
log4cpp
mpir
]
# when gr-qtgui is disabled, icu needs to be included, otherwise
# building with boost 1.7x fails
++ lib.optionals (!(hasFeature "gr-qtgui" features)) [ icu ];
pythonNative = with python.pkgs; [
Mako
six
];
};
volk = {
cmakeEnableFlag = "VOLK";
runtime = [
volk
];
};
doxygen = {
native = [ doxygen ];
cmakeEnableFlag = "DOXYGEN";
};
sphinx = {
pythonNative = with python.pkgs; [ sphinx ];
cmakeEnableFlag = "SPHINX";
};
python-support = {
pythonRuntime = [ python.pkgs.six ];
native = [
swig
python
];
cmakeEnableFlag = "PYTHON";
};
testing-support = {
native = [ cppunit ];
cmakeEnableFlag = "TESTING";
};
gnuradio-runtime = {
cmakeEnableFlag = "GNURADIO_RUNTIME";
};
gr-ctrlport = {
# Thrift support is not really working well, and even the patch they
# recommend applying on 0.9.2 won't apply. See:
# https://github.com/gnuradio/gnuradio/blob/v3.8.2.0/gnuradio-runtime/lib/controlport/thrift/README
cmakeEnableFlag = "GR_CTRLPORT";
native = [
swig
];
};
gnuradio-companion = {
pythonRuntime = with python.pkgs; [
pyyaml
Mako
numpy
pygobject3
];
runtime = [
gtk3
pango
gobject-introspection
cairo
];
cmakeEnableFlag = "GRC";
};
gr-blocks = {
cmakeEnableFlag = "GR_BLOCKS";
};
gr-fec = {
cmakeEnableFlag = "GR_FEC";
};
gr-fft = {
runtime = [ fftwFloat ];
cmakeEnableFlag = "GR_FFT";
};
gr-filter = {
runtime = [ fftwFloat ];
cmakeEnableFlag = "GR_FILTER";
};
gr-analog = {
cmakeEnableFlag = "GR_ANALOG";
};
gr-digital = {
cmakeEnableFlag = "GR_DIGITAL";
};
gr-dtv = {
cmakeEnableFlag = "GR_DTV";
};
gr-audio = {
runtime = []
++ lib.optionals stdenv.isLinux [ alsaLib libjack2 ]
++ lib.optionals stdenv.isDarwin [ CoreAudio ]
;
cmakeEnableFlag = "GR_AUDIO";
};
gr-channels = {
cmakeEnableFlag = "GR_CHANNELS";
};
gr-qtgui = {
runtime = [ qt5.qtbase libsForQt5.qwt ];
pythonRuntime = [ python.pkgs.pyqt5 ];
cmakeEnableFlag = "GR_QTGUI";
};
gr-trellis = {
cmakeEnableFlag = "GR_TRELLIS";
};
gr-uhd = {
runtime = [ uhd ];
cmakeEnableFlag = "GR_UHD";
};
gr-utils = {
cmakeEnableFlag = "GR_UTILS";
};
gr-modtool = {
pythonRuntime = with python.pkgs; [
click
click-plugins
];
cmakeEnableFlag = "GR_MODTOOL";
};
gr-video-sdl = {
runtime = [ SDL ];
cmakeEnableFlag = "GR_VIDEO_SDL";
};
gr-vocoder = {
runtime = [ codec2 gsm ];
cmakeEnableFlag = "GR_VOCODER";
};
gr-wavelet = {
cmakeEnableFlag = "GR_WAVELET";
runtime = [ gsl ];
};
gr-zeromq = {
runtime = [ cppzmq zeromq ];
cmakeEnableFlag = "GR_ZEROMQ";
};
};
shared = (import ./shared.nix {
inherit
stdenv
lib
python
removeReferencesTo
featuresInfo
features
versionAttr
sourceSha256
overrideSrc
fetchFromGitHub
fetchSubmodules
;
qt = qt5;
gtk = gtk3;
});
inherit (shared) hasFeature; # function
in
stdenv.mkDerivation rec {
inherit pname;
inherit (shared)
version
src
nativeBuildInputs
buildInputs
disallowedReferences
stripDebugList
doCheck
dontWrapPythonPrograms
dontWrapQtApps
meta
;
passthru = shared.passthru // {
# Deps that are potentially overriden and are used inside GR plugins - the same version must
inherit boost volk;
} // lib.optionalAttrs (hasFeature "gr-uhd" features) {
inherit uhd;
} // lib.optionalAttrs (hasFeature "gr-qtgui" features) {
inherit (libsForQt5) qwt;
};
cmakeFlags = shared.cmakeFlags
# From some reason, if these are not set, libcodec2 and gsm are not
# detected properly. NOTE: qradiolink needs libcodec2 to be detected in
# order to build, see https://github.com/qradiolink/qradiolink/issues/67
++ lib.optionals (hasFeature "gr-vocoder" features) [
"-DLIBCODEC2_LIBRARIES=${codec2}/lib/libcodec2.so"
"-DLIBCODEC2_INCLUDE_DIRS=${codec2}/include"
"-DLIBCODEC2_HAS_FREEDV_API=ON"
"-DLIBGSM_LIBRARIES=${gsm}/lib/libgsm.so"
"-DLIBGSM_INCLUDE_DIRS=${gsm}/include/gsm"
]
++ lib.optionals (hasFeature "volk" features && volk != null) [
"-DENABLE_INTERNAL_VOLK=OFF"
]
;
postInstall = shared.postInstall
# This is the only python reference worth removing, if needed (3.7 doesn't
# set that reference).
+ lib.optionalString (!hasFeature "python-support" features) ''
${removeReferencesTo}/bin/remove-references-to -t ${python} $out/lib/cmake/gnuradio/GnuradioConfig.cmake
''
;
patches = [
# Don't install python referencing files if python support is disabled.
# See: https://github.com/gnuradio/gnuradio/pull/3839
(fetchpatch {
url = "https://github.com/gnuradio/gnuradio/commit/4a4fd570b398b0b50fe875fcf0eb9c9db2ea5c6e.diff";
sha256 = "xz2E0ji6zfdOAhjfPecAcaVOIls1XP8JngLkBbBBW5Q=";
})
(fetchpatch {
url = "https://github.com/gnuradio/gnuradio/commit/dbc8ad7e7361fddc7b1dbc267c07a776a3f9664b.diff";
sha256 = "tQcCpcUbJv3yqAX8rSHN/pAuBq4ueEvoVo7sNzZGvf4=";
})
# Needed to use boost 1.7x, see:
# https://github.com/gnuradio/gnuradio/issues/3720
# https://github.com/gnuradio/gnuradio/pull/3967
(fetchpatch {
url = "https://github.com/gnuradio/gnuradio/commit/cbcb968358fad56f3646619b258f18b0e6693a07.diff";
sha256 = "1ajf4797f869lqv436xw61s29qdbn7f01i0970kfxv3yahd34p9v";
})
];
}

View file

@ -1,53 +0,0 @@
{ lib
, stdenv
, fetchFromGitHub
, cmake
, pkg-config
, boost
, gnuradio
, makeWrapper
, cppunit
, gr-osmosdr
, log4cpp
, pythonSupport ? true
, python
, swig
, fetchpatch
}:
stdenv.mkDerivation {
pname = "gr-ais";
version = "2015-12-20";
src = fetchFromGitHub {
owner = "bistromath";
repo = "gr-ais";
rev = "cdc1f52745853f9c739c718251830eb69704b26e";
sha256 = "1vl3kk8xr2mh5lf31zdld7yzmwywqffffah8iblxdzblgsdwxfl6";
};
patches = [
(fetchpatch {
url = "https://github.com/bistromath/gr-ais/commit/8502d0252a2a1a9b8d1a71795eaeb5d820684054.patch";
sha256 = "1cwalphldvf6dbhzwz1gi53z0cb4921qsvlz4138q7m6dxccvssg";
})
];
nativeBuildInputs = [ cmake makeWrapper pkg-config ];
buildInputs = [ boost gnuradio cppunit gr-osmosdr log4cpp ]
++ lib.optionals pythonSupport [ python swig ];
postInstall = ''
for prog in "$out"/bin/*; do
wrapProgram "$prog" --set PYTHONPATH $PYTHONPATH:$(toPythonPath "$out")
done
'';
meta = with lib; {
description = "Gnuradio block for ais";
homepage = "https://github.com/bistromath/gr-ais";
license = licenses.gpl3Plus;
platforms = platforms.linux ++ platforms.darwin;
maintainers = with maintainers; [ mog ];
};
}

View file

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

View file

@ -1,37 +0,0 @@
{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, boost, gnuradio, log4cpp
, makeWrapper, cppunit, libosmocore, gr-osmosdr
, pythonSupport ? true, python, swig
}:
assert pythonSupport -> python != null && swig != null;
stdenv.mkDerivation {
pname = "gr-gsm";
version = "2016-08-25";
src = fetchFromGitHub {
owner = "ptrkrysik";
repo = "gr-gsm";
rev = "3ca05e6914ef29eb536da5dbec323701fbc2050d";
sha256 = "13nnq927kpf91iqccr8db9ripy5czjl5jiyivizn6bia0bam2pvx";
};
nativeBuildInputs = [ cmake pkg-config ];
buildInputs = [
boost gnuradio makeWrapper cppunit libosmocore gr-osmosdr log4cpp
] ++ lib.optionals pythonSupport [ python swig ];
postInstall = ''
for prog in "$out"/bin/*; do
wrapProgram "$prog" --set PYTHONPATH $PYTHONPATH:${gr-osmosdr}/lib/${python.libPrefix}/site-packages:$(toPythonPath "$out")
done
'';
meta = with lib; {
description = "Gnuradio block for gsm";
homepage = "https://github.com/ptrkrysik/gr-gsm";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = with maintainers; [ mog ];
};
}

View file

@ -1,38 +0,0 @@
{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, boost, gnuradio
, pythonSupport ? true, python, swig, limesuite, log4cpp
} :
assert pythonSupport -> python != null && swig != null;
let
version = "2.0.0";
in stdenv.mkDerivation {
pname = "gr-limesdr";
inherit version;
src = fetchFromGitHub {
owner = "myriadrf";
repo = "gr-limesdr";
rev = "v${version}";
sha256 = "0ldqvfwl0gil89l9s31fjf9d7ki0dk572i8vna336igfaz348ypq";
};
nativeBuildInputs = [
cmake
pkg-config
] ++ lib.optionals pythonSupport [ swig ];
buildInputs = [
boost gnuradio limesuite log4cpp
] ++ lib.optionals pythonSupport [ python ];
meta = with lib; {
description = "Gnuradio source and sink blocks for LimeSDR";
homepage = "https://wiki.myriadrf.org/Gr-limesdr_Plugin_for_GNURadio";
license = licenses.mit;
platforms = platforms.linux;
maintainers = [ maintainers.markuskowa ];
};
}

View file

@ -1,45 +0,0 @@
{ lib, stdenv, fetchgit, cmake, pkg-config, makeWrapper
, boost
, pythonSupport ? true, python, swig
, airspy
, gnuradio
, hackrf
, libbladeRF
, rtl-sdr
, soapysdr-with-plugins
, uhd
, log4cpp
}:
assert pythonSupport -> python != null && swig != null;
stdenv.mkDerivation rec {
pname = "gr-osmosdr";
version = "0.1.5";
src = fetchgit {
url = "git://git.osmocom.org/gr-osmosdr";
rev = "v${version}";
sha256 = "0bf9bnc1c3c4yqqqgmg3nhygj6rcfmyk6pybi27f7461d2cw1drv";
};
nativeBuildInputs = [ cmake makeWrapper pkg-config ];
buildInputs = [
boost log4cpp airspy gnuradio hackrf libbladeRF rtl-sdr uhd
] ++ lib.optionals stdenv.isLinux [ soapysdr-with-plugins ]
++ lib.optionals pythonSupport [ python swig python.pkgs.cheetah ];
postInstall = ''
for prog in "$out"/bin/*; do
wrapProgram "$prog" --set PYTHONPATH $PYTHONPATH:$(toPythonPath "$out")
done
'';
meta = with lib; {
description = "Gnuradio block for OsmoSDR and rtl-sdr";
homepage = "https://sdr.osmocom.org/trac/wiki/GrOsmoSDR";
license = licenses.gpl3Plus;
platforms = platforms.linux ++ platforms.darwin;
maintainers = with maintainers; [ bjornfor ];
};
}

View file

@ -1,36 +0,0 @@
{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, boost, gnuradio, log4cpp
, makeWrapper, pythonSupport ? true, python, swig
}:
assert pythonSupport -> python != null && swig != null;
stdenv.mkDerivation rec {
pname = "gr-rds";
version = "1.1.0";
src = fetchFromGitHub {
owner = "bastibl";
repo = "gr-rds";
rev = "v${version}";
sha256 = "0jkzchvw0ivcxsjhi1h0mf7k13araxf5m4wi5v9xdgqxvipjzqfy";
};
nativeBuildInputs = [ cmake pkg-config ];
buildInputs = [
boost gnuradio makeWrapper log4cpp
] ++ lib.optionals pythonSupport [ python swig ];
postInstall = ''
for prog in "$out"/bin/*; do
wrapProgram "$prog" --set PYTHONPATH $PYTHONPATH:$(toPythonPath "$out")
done
'';
meta = with lib; {
description = "Gnuradio block for radio data system";
homepage = "https://github.com/bastibl/gr-rds";
license = licenses.gpl2Plus;
platforms = platforms.linux ++ platforms.darwin;
maintainers = with maintainers; [ mog ];
};
}

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -0,0 +1,159 @@
{ lib
, stdenv
, fetchurl
, fetchFromGitHub
, cmake
, pkg-config
# See https://files.ettus.com/manual_archive/v3.15.0.0/html/page_build_guide.html for dependencies explanations
, boost
, enableLibuhd_C_api ? true
# requires numpy
, enableLibuhd_Python_api ? false
, python3
, enableExamples ? false
, enableUtils ? false
, enableLiberio ? false
, liberio
, libusb1
, enableDpdk ? false
, dpdk
# Devices
, enableOctoClock ? true
, enableMpmd ? true
, enableB100 ? true
, enableB200 ? true
, enableUsrp1 ? true
, enableUsrp2 ? true
, enableX300 ? true
, enableN230 ? true
, enableN300 ? true
, enableN320 ? true
, enableE300 ? true
, enableE320 ? true
}:
let
onOffBool = b: if b then "ON" else "OFF";
inherit (lib) optionals;
in
stdenv.mkDerivation rec {
pname = "uhd";
# UHD seems to use three different version number styles: x.y.z, xxx_yyy_zzz
# and xxx.yyy.zzz. Hrmpf... style keeps changing
version = "3.15.0.0";
src = fetchFromGitHub {
owner = "EttusResearch";
repo = "uhd";
rev = "v${version}";
sha256 = "0jknln88a69fh244670nb7qrflbyv0vvdxfddb5g8ncpb6hcg8qf";
};
# Firmware images are downloaded (pre-built) from the respective release on Github
uhdImagesSrc = fetchurl {
url = "https://github.com/EttusResearch/uhd/releases/download/v${version}/uhd-images_${version}.tar.xz";
sha256 = "1fir1a13ac07mqhm4sr34cixiqj2difxq0870qv1wr7a7cbfw6vp";
};
cmakeFlags = [
"-DENABLE_LIBUHD=ON"
"-DENABLE_USB=ON"
"-DENABLE_TESTS=ON" # This installs tests as well so we delete them via postPhases
"-DENABLE_EXAMPLES=${onOffBool enableExamples}"
"-DENABLE_UTILS=${onOffBool enableUtils}"
"-DENABLE_LIBUHD_C_API=${onOffBool enableLibuhd_C_api}"
"-DENABLE_LIBUHD_PYTHON_API=${onOffBool enableLibuhd_Python_api}"
"-DENABLE_LIBERIO=${onOffBool enableLiberio}"
"-DENABLE_DPDK=${onOffBool enableDpdk}"
# Devices
"-DENABLE_OCTOCLOCK=${onOffBool enableOctoClock}"
"-DENABLE_MPMD=${onOffBool enableMpmd}"
"-DENABLE_B100=${onOffBool enableB100}"
"-DENABLE_B200=${onOffBool enableB200}"
"-DENABLE_USRP1=${onOffBool enableUsrp1}"
"-DENABLE_USRP2=${onOffBool enableUsrp2}"
"-DENABLE_X300=${onOffBool enableX300}"
"-DENABLE_N230=${onOffBool enableN230}"
"-DENABLE_N300=${onOffBool enableN300}"
"-DENABLE_N320=${onOffBool enableN320}"
"-DENABLE_E300=${onOffBool enableE300}"
"-DENABLE_E320=${onOffBool enableE320}"
]
# TODO: Check if this still needed
# ABI differences GCC 7.1
# /nix/store/wd6r25miqbk9ia53pp669gn4wrg9n9cj-gcc-7.3.0/include/c++/7.3.0/bits/vector.tcc:394:7: note: parameter passing for argument of type 'std::vector<uhd::range_t>::iterator {aka __gnu_cxx::__normal_iterator<uhd::range_t*, std::vector<uhd::range_t> >}' changed in GCC 7.1
++ [ (lib.optionalString stdenv.isAarch32 "-DCMAKE_CXX_FLAGS=-Wno-psabi") ]
;
# Python + Mako are always required for the build itself but not necessary for runtime.
pythonEnv = python3.withPackages (ps: with ps; [ Mako ]
++ optionals (enableLibuhd_Python_api) [ numpy setuptools ]
++ optionals (enableUtils) [ requests six ]
);
nativeBuildInputs = [
cmake
pkg-config
]
# If both enableLibuhd_Python_api and enableUtils are off, we don't need
# pythonEnv in buildInputs as it's a 'build' dependency and not a runtime
# dependency
++ optionals (!enableLibuhd_Python_api && !enableUtils) [ pythonEnv ]
;
buildInputs = [
boost
libusb1
]
# However, if enableLibuhd_Python_api *or* enableUtils is on, we need
# pythonEnv for runtime as well. The utilities' runtime dependencies are
# handled at the environment
++ optionals (enableLibuhd_Python_api || enableUtils) [ pythonEnv ]
++ optionals (enableLiberio) [ liberio ]
++ optionals (enableDpdk) [ dpdk ]
;
doCheck = true;
# Build only the host software
preConfigure = "cd host";
# TODO: Check if this still needed, perhaps relevant:
# https://files.ettus.com/manual_archive/v3.15.0.0/html/page_build_guide.html#build_instructions_unix_arm
patches = if stdenv.isAarch32 then ./neon.patch else null;
postPhases = [ "installFirmware" "removeInstalledTests" ]
++ optionals (enableUtils) [ "moveUdevRules" ]
;
# UHD expects images in `$CMAKE_INSTALL_PREFIX/share/uhd/images`
installFirmware = ''
mkdir -p "$out/share/uhd/images"
tar --strip-components=1 -xvf "${uhdImagesSrc}" -C "$out/share/uhd/images"
'';
# -DENABLE_TESTS=ON installs the tests, we don't need them in the output
removeInstalledTests = ''
rm -r $out/lib/uhd/tests
'';
# Moves the udev rules to the standard location, needed only if utils are
# enabled
moveUdevRules = ''
mkdir -p $out/lib/udev/rules.d
mv $out/lib/uhd/utils/uhd-usrp.rules $out/lib/udev/rules.d/
'';
meta = with lib; {
description = "USRP Hardware Driver (for Software Defined Radio)";
longDescription = ''
The USRP Hardware Driver (UHD) software is the hardware driver for all
USRP (Universal Software Radio Peripheral) devices.
USRP devices are designed and sold by Ettus Research, LLC and its parent
company, National Instruments.
'';
homepage = "https://uhd.ettus.com/";
license = licenses.gpl3Plus;
platforms = platforms.linux ++ platforms.darwin;
maintainers = with maintainers; [ bjornfor fpletz tomberek ];
};
}

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -0,0 +1,45 @@
{ lib
, stdenv
, mkDerivation
, fetchFromGitHub
, cmake
, pkg-config
, python
, boost
, cppunit
, log4cpp
, osmosdr
}:
mkDerivation rec {
pname = "gr-ais";
version = "2015-12-20";
src = fetchFromGitHub {
owner = "bistromath";
repo = "gr-ais";
rev = "cdc1f52745853f9c739c718251830eb69704b26e";
sha256 = "1vl3kk8xr2mh5lf31zdld7yzmwywqffffah8iblxdzblgsdwxfl6";
};
disabledForGRafter = "3.8";
nativeBuildInputs = [
cmake
pkg-config
python
];
buildInputs = [
cppunit
osmosdr
boost
log4cpp
];
meta = with lib; {
description = "Gnuradio block for ais";
homepage = "https://github.com/bistromath/gr-ais";
license = licenses.gpl3Plus;
platforms = platforms.unix;
maintainers = with maintainers; [ mog ];
};
}

View file

@ -0,0 +1,48 @@
{ lib
, mkDerivation
, fetchFromGitHub
, cmake
, pkg-config
, cppunit
, swig
, boost
, log4cpp
, python
, libosmocore
, osmosdr
}:
mkDerivation {
pname = "gr-gsm";
version = "2016-08-25";
src = fetchFromGitHub {
owner = "ptrkrysik";
repo = "gr-gsm";
rev = "3ca05e6914ef29eb536da5dbec323701fbc2050d";
sha256 = "13nnq927kpf91iqccr8db9ripy5czjl5jiyivizn6bia0bam2pvx";
};
disabledForGRafter = "3.8";
nativeBuildInputs = [
cmake
pkg-config
swig
python
];
buildInputs = [
cppunit
log4cpp
boost
libosmocore
osmosdr
];
meta = with lib; {
description = "Gnuradio block for gsm";
homepage = "https://github.com/ptrkrysik/gr-gsm";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = with maintainers; [ mog ];
};
}

View file

@ -0,0 +1,61 @@
{ lib
, mkDerivation
, fetchFromGitHub
, gnuradio
, cmake
, pkg-config
, doxygen
, swig
, python
, log4cpp
, mpir
, boost
, gmp
, icu
, limesuite
}:
let
version = {
"3.7" = "2.0.0";
"3.8" = "3.0.1";
"3.9" = null;
}.${gnuradio.versionAttr.major};
src = fetchFromGitHub {
owner = "myriadrf";
repo = "gr-limesdr";
rev = "v${version}";
sha256 = {
"3.7" = "0ldqvfwl0gil89l9s31fjf9d7ki0dk572i8vna336igfaz348ypq";
"3.8" = "ffs+8TU0yr6IW1xZJ/abQ1CQWGZM+zYqPRJxy3ZvM9U=";
"3.9" = null;
}.${gnuradio.versionAttr.major};
};
in mkDerivation {
pname = "gr-limesdr";
inherit version src;
disabledForGRafter = "3.9";
nativeBuildInputs = [
cmake
pkg-config
swig
python
];
buildInputs = [
log4cpp
mpir
boost
gmp
icu
limesuite
];
meta = with lib; {
description = "Gnuradio source and sink blocks for LimeSDR";
homepage = "https://wiki.myriadrf.org/Gr-limesdr_Plugin_for_GNURadio";
license = licenses.mit;
platforms = platforms.linux;
maintainers = [ maintainers.markuskowa ];
};
}

View file

@ -0,0 +1,25 @@
{ lib
, unwrapped
}:
mkDerivation:
args:
# Check if it's supposed to not get built for the current gnuradio version
if (builtins.hasAttr "disabledForGRafter" args) &&
(lib.versionAtLeast unwrapped.versionAttr.major args.disabledForGRafter) then
let name = args.name or "${args.pname}"; in
throw "Package ${name} is incompatible with GNURadio ${unwrapped.versionAttr.major}"
else
let
args_ = {
enableParallelBuilding = args.enableParallelBuilding or true;
nativeBuildInputs = (args.nativeBuildInputs or []);
# We add gnuradio and volk itself by default - most gnuradio based packages
# will not consider it a depenency worth mentioning and it will almost
# always be needed
buildInputs = (args.buildInputs or []) ++ [ unwrapped unwrapped.volk ];
};
in mkDerivation (args // args_)

View file

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

View file

@ -0,0 +1,86 @@
{ lib
, mkDerivation
, fetchgit
, gnuradio
, cmake
, pkg-config
, log4cpp
, mpir
, boost
, gmp
, fftwFloat
, python
, swig
, uhd
, icu
, airspy
, hackrf
, libbladeRF
, rtl-sdr
, soapysdr-with-plugins
}:
let
version = {
"3.7" = "0.1.5";
"3.8" = "0.2.2";
"3.9" = null;
}.${gnuradio.versionAttr.major};
src = fetchgit {
url = "git://git.osmocom.org/gr-osmosdr";
rev = "v${version}";
sha256 = {
"3.7" = "0bf9bnc1c3c4yqqqgmg3nhygj6rcfmyk6pybi27f7461d2cw1drv";
"3.8" = "HT6xlN6cJAnvF+s1g2I1uENhBJJizdADlLXeSD0rEqs=";
"3.9" = null;
}.${gnuradio.versionAttr.major};
};
in mkDerivation {
pname = "gr-osmosdr";
inherit version src;
disabledForGRafter = "3.9";
buildInputs = [
log4cpp
mpir
boost
fftwFloat
gmp
icu
airspy
hackrf
libbladeRF
rtl-sdr
soapysdr-with-plugins
] ++ lib.optional (gnuradio.hasFeature "gr-uhd" gnuradio.features) [
uhd
];
cmakeFlags = [
(if (gnuradio.hasFeature "python-support" gnuradio.features) then
"-DENABLE_PYTHON=ON"
else
"-DENABLE_PYTHON=OFF"
)
];
nativeBuildInputs = [
cmake
pkg-config
swig
] ++ lib.optionals (gnuradio.hasFeature "python-support" gnuradio.features) [
(if (gnuradio.versionAttr.major == "3.7") then
python.pkgs.cheetah
else
python.pkgs.Mako
)
python
]
;
meta = with lib; {
description = "Gnuradio block for OsmoSDR and rtl-sdr";
homepage = "https://sdr.osmocom.org/trac/wiki/GrOsmoSDR";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ bjornfor ];
platforms = platforms.unix;
};
}

View file

@ -0,0 +1,59 @@
{ lib
, mkDerivation
, fetchFromGitHub
, gnuradio
, cmake
, pkg-config
, swig
, python
, log4cpp
, mpir
, boost
, gmp
, icu
}:
let
version = {
"3.7" = "1.1.0";
"3.8" = "3.8.0";
"3.9" = null;
}.${gnuradio.versionAttr.major};
src = fetchFromGitHub {
owner = "bastibl";
repo = "gr-rds";
rev = "v${version}";
sha256 = {
"3.7" = "0jkzchvw0ivcxsjhi1h0mf7k13araxf5m4wi5v9xdgqxvipjzqfy";
"3.8" = "+yKLJu2bo7I2jkAiOdjvdhZwxFz9NFgTmzcLthH9Y5o=";
"3.9" = null;
}.${gnuradio.versionAttr.major};
};
in mkDerivation {
pname = "gr-rds";
inherit version src;
disabledForGRafter = "3.9";
buildInputs = [
log4cpp
mpir
boost
gmp
icu
];
nativeBuildInputs = [
cmake
pkg-config
swig
python
];
meta = with lib; {
description = "Gnuradio block for radio data system";
homepage = "https://github.com/bastibl/gr-rds";
license = licenses.gpl2Plus;
platforms = platforms.unix;
maintainers = with maintainers; [ mog ];
};
}

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -0,0 +1,12 @@
prefix=@out@
exec_prefix=@out@
libdir=${exec_prefix}/lib
includedir=${prefix}/include
datarootdir=${prefix}/share
datadir=${datarootdir}
Name: libiniparser
Description: Iniparser library
Version: @version@
Libs: -L${libdir} -liniparser
Cflags: -I${includedir}

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -0,0 +1,51 @@
{ stdenv
, lib
, fetchFromGitHub
, fetchpatch
, cmake
, cppunit
, python3
, enableModTool ? true
, removeReferencesTo
}:
stdenv.mkDerivation rec {
pname = "volk";
version = "2.4.1";
src = fetchFromGitHub {
owner = "gnuradio";
repo = pname;
rev = "v${version}";
sha256 = "fuHJ+p5VN4ThdbQFbzB08VCuy/Zo7m/I1Gs5EQGPeNY=";
fetchSubmodules = true;
};
patches = [
# Fixes a failing test: https://github.com/gnuradio/volk/pull/434
(fetchpatch {
url = "https://github.com/gnuradio/volk/pull/434/commits/bce8531b6f1a3c5abe946ed6674b283d54258281.patch";
sha256 = "OLW9uF6iL47z63kjvYqwsWtkINav8Xhs+Htqg6Kr4uI=";
})
];
cmakeFlags = lib.optionals (!enableModTool) [ "-DENABLE_MODTOOL=OFF" ];
postInstall = ''
${removeReferencesTo}/bin/remove-references-to -t ${stdenv.cc} $(readlink -f $out/lib/libvolk.so)
'';
nativeBuildInputs = [
cmake
python3
python3.pkgs.Mako
];
doCheck = true;
meta = with lib; {
homepage = "http://libvolk.org/";
description = "The Vector Optimized Library of Kernels";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ doronbehar ];
platforms = platforms.all;
};
}

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -2,18 +2,20 @@
buildGoModule rec { buildGoModule rec {
pname = "renderizer"; pname = "renderizer";
version = "2.0.9"; version = "2.0.12";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "gomatic"; owner = "gomatic";
repo = pname; repo = pname;
rev = version; rev = "v${version}";
sha256 = "1bip12pcn8bqgph7vd7bzzadwbyqh80fx7gqciv9fchycwsj04rf"; 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; { meta = with lib; {
description = "CLI to render Go template text files"; description = "CLI to render Go template text files";

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -0,0 +1,23 @@
{ lib, buildGoModule, fetchgit, nixosTests }:
buildGoModule rec {
pname = "jitsiexporter";
version = "0.2.18";
src = fetchgit {
url = "https://git.xsfx.dev/prometheus/jitsiexporter";
rev = "v${version}";
sha256 = "1cf46wp96d9dwlwlffcgbcr0v3xxxfdv6il0zqkm2i7cfsfw0skf";
};
vendorSha256 = null;
passthru.tests = { inherit (nixosTests.prometheus-exporters) jitsi; };
meta = with lib; {
description = "Export Jitsi Videobridge metrics to Prometheus";
homepage = "https://git.xsfx.dev/prometheus/jitsiexporter";
license = licenses.mit;
maintainers = with maintainers; [ petabyteboy ];
};
}

View file

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

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