diff options
author | Fabian Möller <fabianm88@gmail.com> | 2022-01-26 14:03:05 +0100 |
---|---|---|
committer | Fabian Möller <fabianm88@gmail.com> | 2022-01-27 13:45:51 +0100 |
commit | 487aa0781d2151e5be83f0f39f73c3941ba24028 (patch) | |
tree | 0e3ebde90b4c0fda398dc1efadc07695f5df5cec /pkgs/applications/networking/breitbandmessung | |
parent | ffce342b55813f7324642940600ef68776325a40 (diff) |
breitbandmessung: init at 3.1.0
Diffstat (limited to 'pkgs/applications/networking/breitbandmessung')
-rw-r--r-- | pkgs/applications/networking/breitbandmessung/default.nix | 153 |
1 files changed, 153 insertions, 0 deletions
diff --git a/pkgs/applications/networking/breitbandmessung/default.nix b/pkgs/applications/networking/breitbandmessung/default.nix new file mode 100644 index 0000000000000..2a57379d9916e --- /dev/null +++ b/pkgs/applications/networking/breitbandmessung/default.nix @@ -0,0 +1,153 @@ +{ lib +, stdenv +, alsa-lib +, at-spi2-atk +, at-spi2-core +, atk +, autoPatchelfHook +, cairo +, cups +, dbus +, dpkg +, expat +, fetchurl +, gdk-pixbuf +, glib +, gtk3 +, libdrm +, libxkbcommon +, makeWrapper +, mesa +, nixosTests +, nspr +, nss +, pango +, pciutils +, systemd +, undmg +, writeShellScriptBin +, xorg +}: + +let + inherit (stdenv.hostPlatform) system; + + version = "3.1.0"; + + # At first start, the program checks for supported operating systems by calling `lsb_release -a` + # and only runs when it finds Debian/Ubuntu. So we present us as Debian an make it happy. + fake-lsb-release = writeShellScriptBin "lsb_release" '' + echo "Distributor ID: Debian" + echo "Description: Debian GNU/Linux 10 (buster)" + echo "Release: 10" + echo "Codename: buster" + ''; + + binPath = lib.makeBinPath [ + fake-lsb-release + ]; + + systemArgs = rec { + x86_64-linux = rec { + src = fetchurl { + url = "https://download.breitbandmessung.de/bbm/Breitbandmessung-${version}-linux.deb"; + sha256 = "sha256-jSP+H9ej9Wd+swBZSy9uMi2ExSTZ191FGZhqaocTl7w="; + }; + + dontUnpack = true; + + nativeBuildInputs = [ + autoPatchelfHook + dpkg + makeWrapper + ]; + + buildInputs = runtimeDependencies; + + runtimeDependencies = [ + alsa-lib + at-spi2-atk + at-spi2-core + atk + cairo + cups + dbus + expat + gdk-pixbuf + glib + gtk3 + libdrm + libxkbcommon + mesa + nspr + nss + pango + pciutils + systemd + xorg.libX11 + xorg.libXcomposite + xorg.libXdamage + xorg.libXext + xorg.libXfixes + xorg.libXrandr + xorg.libxcb + xorg.libxshmfence + ]; + + installPhase = '' + dpkg-deb -x $src $out + mkdir -p $out/bin + + chmod -R g-w $out + + addAutoPatchelfSearchPath --no-recurse $out/opt/Breitbandmessung + autoPatchelfFile $out/opt/Breitbandmessung/breitbandmessung + + makeWrapper $out/opt/Breitbandmessung/breitbandmessung $out/bin/breitbandmessung \ + --prefix PATH : ${binPath} + + mv $out/usr/share $out/share + rmdir $out/usr + + # Fix the desktop link + substituteInPlace $out/share/applications/breitbandmessung.desktop \ + --replace /opt/Breitbandmessung $out/bin + ''; + + dontAutoPatchelf = true; + dontPatchELF = true; + }; + + x86_64-darwin = { + src = fetchurl { + url = "https://download.breitbandmessung.de/bbm/Breitbandmessung-${version}-mac.dmg"; + sha256 = "sha256-2c8mDKJuHDSw7p52EKnJO5vr2kNTLU6r9pmGPANjE20="; + }; + + nativeBuildInputs = [ undmg ]; + + installPhase = '' + runHook preInstall + mkdir -p $out/Applications/Breitbandmessung.app + cp -R . $out/Applications/Breitbandmessung.app + runHook postInstall + ''; + }; + + aarch64-darwin = x86_64-darwin; + }.${system} or (throw "Unsupported system: ${system}"); +in +stdenv.mkDerivation ({ + pname = "breitbandmessung"; + inherit version; + + passthru.tests = { inherit (nixosTests) breitbandmessung; }; + + meta = with lib; { + description = "Broadband internet speed test app from the german Bundesnetzagentur"; + homepage = "https://www.breitbandmessung.de"; + license = licenses.unfree; + maintainers = with maintainers; [ b4dm4n ]; + platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" ]; + }; +} // systemArgs) |