parent
ffce342b55
commit
487aa0781d
@ -0,0 +1,32 @@ |
||||
import ./make-test-python.nix ({ lib, ... }: { |
||||
name = "breitbandmessung"; |
||||
meta.maintainers = with lib.maintainers; [ b4dm4n ]; |
||||
|
||||
machine = { pkgs, ... }: { |
||||
imports = [ |
||||
./common/user-account.nix |
||||
./common/x11.nix |
||||
]; |
||||
|
||||
test-support.displayManager.auto.user = "alice"; |
||||
|
||||
environment.systemPackages = with pkgs; [ breitbandmessung ]; |
||||
environment.variables.XAUTHORITY = "/home/alice/.Xauthority"; |
||||
|
||||
# breitbandmessung is unfree |
||||
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ "breitbandmessung" ]; |
||||
}; |
||||
|
||||
enableOCR = true; |
||||
|
||||
testScript = '' |
||||
machine.wait_for_x() |
||||
# increase screen size to make the whole program visible |
||||
machine.succeed("xrandr --output Virtual-1 --mode 1280x1024") |
||||
machine.execute("su - alice -c breitbandmessung >&2 &") |
||||
machine.wait_for_window("Breitbandmessung") |
||||
machine.wait_for_text("Breitbandmessung") |
||||
machine.wait_for_text("Datenschutz") |
||||
machine.screenshot("breitbandmessung") |
||||
''; |
||||
}) |
@ -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) |
Loading…
Reference in new issue