nixpkgs/pkgs/by-name/ro/rovium/package.nix
2025-11-08 18:42:49 -03:00

133 lines
2.8 KiB
Nix

{
lib,
stdenv,
fetchurl,
autoPatchelfHook,
makeWrapper,
dpkg,
glib,
gtk3,
nspr,
nss,
cups,
dbus,
atk,
at-spi2-atk,
at-spi2-core,
cairo,
pango,
xorg,
libxkbcommon,
libdrm,
mesa,
libGL,
libxkbfile,
libsecret,
expat,
alsa-lib,
systemd,
fontconfig,
}:
stdenv.mkDerivation rec {
pname = "rovium";
version = "0.4.0-beta";
src = fetchurl {
url = "https://github.com/MaximilianCF/rovium-ide-nix/releases/download/v0.1.0-beta/rovium-0.4.0-amd64.deb";
hash = "sha256-JHFD82MSyvQMYRzzLBFdO8G1RHUKU5sHk5qgYyMqWVE=";
};
nativeBuildInputs = [
autoPatchelfHook
makeWrapper
dpkg
];
buildInputs = [
stdenv.cc.cc.lib
glib
gtk3
nspr
nss
cups
dbus
atk
at-spi2-atk
at-spi2-core
cairo
pango
xorg.libX11
xorg.libXcomposite
xorg.libXdamage
xorg.libXext
xorg.libXfixes
xorg.libXrandr
xorg.libxcb
libxkbcommon
libdrm
mesa
libGL
libxkbfile
libsecret
expat
alsa-lib
systemd
fontconfig
];
autoPatchelfIgnoreMissingDeps = [ "libc.musl-x86_64.so.1" ];
unpackPhase = ''
runHook preUnpack
dpkg-deb -x $src .
runHook postUnpack
'';
installPhase = ''
runHook preInstall
mkdir -p $out/bin $out/opt $out/share/applications $out/share/icons/hicolor/512x512/apps
cp -r opt/Rovium $out/opt/
makeWrapper $out/opt/Rovium/rovium $out/bin/rovium \
--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath buildInputs}" \
--set ELECTRON_ENABLE_LOGGING 0 \
--set ELECTRON_NO_UPDATER 1 \
--set DBUS_SESSION_BUS_ADDRESS "unix:path=/run/user/\$(id -u)/bus" \
--add-flags "--no-sandbox" \
--add-flags "--ozone-platform=x11" \
--add-flags "--disable-update" \
--add-flags "--disable-component-update" \
--add-flags "--disable-breakpad" \
--add-flags "--disable-background-networking" \
--add-flags "--enable-features=UseOzonePlatform"
if [ -f usr/share/applications/rovium.desktop ]; then
cp usr/share/applications/rovium.desktop $out/share/applications/
substituteInPlace $out/share/applications/rovium.desktop \
--replace-fail "/opt/Rovium/rovium" "$out/bin/rovium"
fi
if [ -d usr/share/icons/hicolor/512x512/apps ]; then
cp usr/share/icons/hicolor/512x512/apps/* $out/share/icons/hicolor/512x512/apps/ || true
fi
runHook postInstall
'';
dontPatchELF = false;
dontWrapQtApps = true;
meta = {
description = "Integrated Development Environment for ROS and Robotics";
homepage = "https://rovium.dev";
license = lib.licenses.unfreeRedistributable;
maintainers = with lib.maintainers; [ maximiliancf ];
mainProgram = "rovium";
platforms = lib.platforms.linux;
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
};
}