Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Package request: remotedesktopmanager, rdm, remote desktop manager #312937

Open
muratcabuk opened this issue May 19, 2024 · 2 comments
Open

Package request: remotedesktopmanager, rdm, remote desktop manager #312937

muratcabuk opened this issue May 19, 2024 · 2 comments

Comments

@muratcabuk
Copy link

Project description

Remote Desktop Manager (RDM) centralizes all remote connections on a single platform that is securely shared between users and across the entire team. With support for hundreds of integrated technologies — including multiple protocols and VPNs — along with built-in enterprise-grade password management tools, global and granular-level access controls, and robust mobile apps to complement desktop clients for Windows and Mac, RDM is a IT toolbox for remote access. RDM empowers IT departments to drive security, speed and productivity throughout the organization, while reducing inefficiency, cost and risk.

Metadata


Add a 👍 reaction to issues you find important.

@muratcabuk
Copy link
Author

The application is written in dotnet and currently only has deb and rpm packages available. Using the deb package, I wrote the following code. When I build and run it, it throws an error and crashes. Upon examining the logs, I get the following error. When I visit the URL mentioned in the error, it suggests setting the DOTNET_SYSTEM_GLOBALIZATION_INVARIANT="1" environment variable. As you can see in the code, I have already set the environment variable, but I am still getting the same error.

"ERROR System.Globalization.CultureNotFoundException: Only the invariant culture is supported in globalization-invariant mode. See https://aka.ms/GlobalizationInvariantMode for more information. (Parameter 'name')
en-US is an invalid culture identifier."

{ lib,
  stdenv, 
  fetchurl, 
  dpkg,
  webkitgtk,
  cacert,
  libsecret,
  vte,
  libxcrypt,
  libsoup_3,
  webkitgtk_4_1,
  lttng-ust_2_12,
  libxcrypt-legacy,
  icu,
  gtk3,
  dotnet-sdk_8,
  
  
  makeWrapper,
  autoPatchelfHook

  }:


stdenv.mkDerivation rec {
  pname = "rdm";
  version = "2024.1.1.3";

  src = fetchurl {
    url = "https://cdn.devolutions.net/download/Linux/RDM/${version}/RemoteDesktopManager_${version}_amd64.deb";
    sha256 = "C70B33945618D000825994A9261C1473DA05525717CB06AACE3220F17197C780";
  };

  dontConfigure = true;
  dontBuild = true;

  nativeBuildInputs = [ dpkg makeWrapper autoPatchelfHook];

  buildInputs = [ dpkg
                  cacert
                  libsecret
                  vte
                  libxcrypt
                  libsoup_3
                  webkitgtk
                  webkitgtk_4_1
                  lttng-ust_2_12
                  libxcrypt-legacy
                  icu.dev
                  icu
                  gtk3
                  gtk3.out
                  dotnet-sdk_8
                  
                  ];

  unpackPhase = ''
    dpkg-deb -x $src $out
  '';

  installPhase = ''
    runHook preInstall

    export DOTNET_SYSTEM_GLOBALIZATION_INVARIANT="1"

    mkdir -p $out/usr/bin

    echo "export DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1" > $out/bin/remotedesktopmanager
    echo "exec $out/usr/lib/devolutions/RemoteDesktopManager/RemoteDesktopManager \$@" >> $out/bin/remotedesktopmanager
    
    ln -s $out/bin/remotedesktopmanager $out/bin/rdm
    ln -s $out/bin/remotedesktopmanager $out/usr/bin/remotedesktopmanager

    wrapProgram $out/bin/remotedesktopmanager --prefix LD_LIBRARY_PATH : ${gtk3}/lib:${gtk3.out}/lib 
    
    runHook postInstall
  '';

  shellHook = ''
    export DOTNET_SYSTEM_GLOBALIZATION_INVARIANT="1"
  '';


  meta = {
    description = "Devolutions Remote Desktop Manager";
    homepage = "https://devolutions.net/remote-desktop-manager/";

  };
}

@muratcabuk
Copy link
Author

I changed the code. It worked after change the config file directly. I’m stuck on the error below.

Error

ERROR SILENT GLib.GException: Unrecognized image file format
  at Gdk.PixbufLoader.Close()
  at Gdk.PixbufLoader.InitFromBuffer(Byte[] buffer)
  at Devolutions.RemoteDesktopManager.ImageHelper.CreateImageFromSVGContent(String content, Int32 size)
  at Devolutions.RemoteDesktopManager.Managers.ImageManager.SvgConverterService.Convert(String svgText, String name, Int32 size)
  at Devolutions.RemoteDesktopManager.Managers.ImageResources.GetSvgImage(String svgName, ImagePaletteType palette, Int32 originalSize, ImageEffect effect, Nullable`1 deviceDPI)
  at Client.Helpers.BuilderHelper.GetSvg(String name, String size, String color)
  at Client.Helpers.BuilderHelper.TranslateImage(Image image)

Nix Code

{ lib,
 stdenv, 
 fetchurl, 
 dpkg,
 webkitgtk,
 cacert,
 libsecret,
 vte,
 libxcrypt,
 libsoup_3,
 webkitgtk_4_1,
 lttng-ust_2_12,
 libxcrypt-legacy,
 icu,
 gtk3,
 gdk-pixbuf,
 librsvg,
 shared-mime-info,
 dotnet-sdk_8,
 
 
 makeWrapper,
 autoPatchelfHook

 }:


stdenv.mkDerivation rec {
 pname = "rdm";
 version = "2024.1.1.3";

 src = fetchurl {
   url = "https://cdn.devolutions.net/download/Linux/RDM/${version}/RemoteDesktopManager_${version}_amd64.deb";
   sha256 = "C70B33945618D000825994A9261C1473DA05525717CB06AACE3220F17197C780";
 };

 dontConfigure = true;
 dontBuild = true;

 nativeBuildInputs = [ dpkg makeWrapper autoPatchelfHook];

 buildInputs = [ dpkg
                 cacert
                 libsecret
                 vte
                 libxcrypt
                 libsoup_3
                 webkitgtk
                 webkitgtk_4_1
                 lttng-ust_2_12
                 libxcrypt-legacy
                 icu.dev
                 icu
                 gtk3
                 gtk3.out
                 gdk-pixbuf
                 librsvg
                 shared-mime-info
                 dotnet-sdk_8
                 
                 ];

 unpackPhase = ''
   dpkg-deb -x $src $out
 '';





 installPhase = ''
   runHook preInstall
   mkdir -p $out/usr/bin

   ln -s $out/bin/remotedesktopmanager $out/bin/rdm
   ln -s $out/bin/remotedesktopmanager $out/usr/bin/remotedesktopmanager
   
   runHook postInstall
 '';


preFixup = ''
gappsWrapperArgs+=(
   # Thumbnailers
   --prefix XDG_DATA_DIRS : "${gdk-pixbuf}/share"
   --prefix XDG_DATA_DIRS : "${librsvg}/share"
   --prefix XDG_DATA_DIRS : "${shared-mime-info}/share"
 )
 '';

preInstall = ''
 echo "exec $out/usr/lib/devolutions/RemoteDesktopManager/RemoteDesktopManager \$@" > $out/bin/remotedesktopmanager

 wrapProgram $out/bin/remotedesktopmanager --prefix LD_LIBRARY_PATH : ${gtk3}/lib:${gtk3.out}/lib 
 wrapProgram $out/bin/remotedesktopmanager --prefix LD_LIBRARY_PATH : ${icu}/lib:${icu.dev}/lib


 tee  $out/usr/lib/devolutions/RemoteDesktopManager/RemoteDesktopManager.runtimeconfig.json << END
   { 
       "runtimeOptions": {
       "tfm": "net8.0",
       "includedFrameworks": [
         {
           "name": "Microsoft.NETCore.App",
           "version": "8.0.4"
         }
       ],
         "configProperties": {
             "System.Reflection.Metadata.MetadataUpdater.IsSupported": false,
             "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false,
             "System.Globalization.Invariant": false
       }
     }
   }

'';

postInstall = ''
   
'';


 meta = {
   description = "Devolutions Remote Desktop Manager";
   homepage = "https://devolutions.net/remote-desktop-manager/";

 };
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant