diff options
Diffstat (limited to 'pkgs/by-name/re/renode/package.nix')
-rw-r--r-- | pkgs/by-name/re/renode/package.nix | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/pkgs/by-name/re/renode/package.nix b/pkgs/by-name/re/renode/package.nix new file mode 100644 index 0000000000000..33646daac8c5b --- /dev/null +++ b/pkgs/by-name/re/renode/package.nix @@ -0,0 +1,103 @@ +{ stdenv +, lib +, fetchurl +, autoPatchelfHook +, makeWrapper +, writeScript +, glibcLocales +, python3Packages +, gtk-sharp-2_0 +, gtk2-x11 +, screen +, buildUnstable ? false +}: + +let + pythonLibs = with python3Packages; makePythonPath [ + construct + psutil + pyyaml + requests + robotframework + ]; +in +stdenv.mkDerivation (finalAttrs: { + pname = "renode"; + version = "1.14.0"; + + src = fetchurl { + url = "https://builds.renode.io/renode-${finalAttrs.version}.linux-portable.tar.gz"; + hash = "sha256-1wfVHtCYc99ACz8m2XEg1R0nIDh9xP4ffV/vxeeEHxE="; + }; + + nativeBuildInputs = [ + autoPatchelfHook + makeWrapper + ]; + + propagatedBuildInputs = [ + gtk2-x11 + gtk-sharp-2_0 + screen + ]; + + strictDeps = true; + + installPhase = '' + runHook preInstall + + mkdir -p $out/{bin,libexec/renode} + + mv * $out/libexec/renode + mv .renode-root $out/libexec/renode + chmod +x $out/libexec/renode/*.so + + makeWrapper "$out/libexec/renode/renode" "$out/bin/renode" \ + --prefix PATH : "$out/libexec/renode" \ + --suffix LD_LIBRARY_PATH : "${gtk2-x11}/lib" \ + --set LOCALE_ARCHIVE "${glibcLocales}/lib/locale/locale-archive" + + makeWrapper "$out/libexec/renode/renode-test" "$out/bin/renode-test" \ + --prefix PATH : "$out/libexec/renode" \ + --prefix PYTHONPATH : "${pythonLibs}" \ + --suffix LD_LIBRARY_PATH : "${gtk2-x11}/lib" \ + --set LOCALE_ARCHIVE "${glibcLocales}/lib/locale/locale-archive" + + substituteInPlace "$out/libexec/renode/renode-test" \ + --replace '$PYTHON_RUNNER' '${python3Packages.python}/bin/python3' + + runHook postInstall + ''; + + passthru.updateScript = + let + versionRegex = + if buildUnstable + then "[0-9\.\+]+[^\+]*." + else "[0-9\.]+[^\+]*."; + in + writeScript "${finalAttrs.pname}-updater" '' + #!/usr/bin/env nix-shell + #!nix-shell -i bash -p common-updater-scripts curl gnugrep gnused pup + + latestVersion=$( + curl -sS https://builds.renode.io \ + | pup 'a text{}' \ + | egrep 'renode-${versionRegex}\.linux-portable\.tar\.gz' \ + | head -n1 \ + | sed -e 's,renode-\(.*\)\.linux-portable\.tar\.gz,\1,g' + ) + + update-source-version ${finalAttrs.pname} "$latestVersion" \ + --file=pkgs/by-name/re/${finalAttrs.pname}/package.nix \ + --system=x86_64-linux + ''; + + meta = { + description = "Virtual development framework for complex embedded systems"; + homepage = "https://renode.org"; + license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ otavio ]; + platforms = [ "x86_64-linux" ]; + }; +}) |