0

I'm not experienced in C, qt and cmake.

I spent last 10 hours trying to build this project: https://github.com/moonlight-stream/moonlight-qt

May main goal is to build it myself and run it on Ubuntu.

README describes that in order to build I need to install all those libraries:

openssl-devel qt5-devel SDL2-devel ffmpeg-devel qt5-qtquickcontrols2-devel libva-devel libvdpau-devel opus-devel pulseaudio-libs-devel alsa-lib-devel SDL2_ttf-devel

I were trying to build it on Ubuntu, but I found out, that those libraries cannot be installed by simple "apt" command. I tried with ubuntu's libraries, but (for example) after install "libssl-dev", cmake I installed the newest Fedora, then using yum I installed libs and built project successfully.

After that, I copied binaries to my Ubuntu system, but I couldn't run it. A lot of shared libraries are missing on my Ubuntu. Also qt version of my Ubuntu is older than used to build on Fedora.

Compiled version downloaded from github "releases" tab for Ubuntu works well.

Because I don't know exactly how to solve my problem, I have 3 questions:

  1. Do it makes sense to build under Fedora and run under Ubuntu?
  2. Can I somehow force "make" command to include all those shared libraries and qt-related libraries to project?
  3. If not, maybe I can install yum on Ubuntu and then I could easily install recommended libs?
  • Redhat and Debian name their packages differently. yum's openssl-devel is apt's libssl-dev, for instance. You can't take a list of packages intended for one family and expect them to "just work" on another without some translation. Once you DO have the libraries you need though, compiling should not be a problem. – DopeGhoti Mar 15 at 20:21
  • Do you need to build it yourself, or would a Snap be satisfactory? snapcraft.io/moonlight – Emmanuel Rosa Mar 16 at 8:03
  • @EmmanuelRosa - I need to make modifications to sources. – C D Mar 17 at 8:52
1
  1. Does it makes sense to build under Fedora and run under Ubuntu?

No don't try it. At least not like that. You can sometimes get away with migrating between "sister" distributions (eg: between Debian, Ubuntu and Mint, or between CentOS, Fedora and RHEL). But when crossing between the major forks you will almost always encounter the problems you have seen such as mismatched library versions.

  1. Can I somehow force "make" command to include all those shared libraries and qt-related libraries to project?

It's actually possible to copy all the shared libraries across manually and use those. The only challenge might be different kernels between them. But I don't recommend this. You wouldn't ask make to do this. Find the executable or .so built by this project and check out what libraries it needs using ldd. You would need to put these in a directory and set LD_LIBRARY_PATH before running. Again this is not advisable.

  1. If not, maybe I can install yum on Ubuntu and then I could easily install recommended libs?

That's an even worse idea. I would hate to think how the two systems might fight and screw up your OS.


Your best option: Make the build work on Ubuntu

If it really won't build raise an issue on github.

The packages will most likely exist for Ubuntu but you might need to investigate the name of the packages as they will be different under Ubuntu compared to Fedora. For example libssl-dev.

Start by searching the smallest part of the name that might score a hit... eg:

apt-cache search libssl

  cl-plus-ssl - Common Lisp interface to OpenSSL
  dcmtk - OFFIS DICOM toolkit command line utilities
  libdcmtk-dev - OFFIS DICOM toolkit development libraries and headers
  libdcmtk14 - OFFIS DICOM toolkit runtime libraries
  dlang-openssl - D version of the C headers for openssl
  libssl-ocaml - OCaml bindings for OpenSSL (runtime)
  libssl-ocaml-dev - OCaml bindings for OpenSSL
* libssl-dev - Secure Sockets Layer toolkit - development files
  libssl-doc - Secure Sockets Layer toolkit - development documentation
  libssl1.1 - Secure Sockets Layer toolkit - shared libraries
  perl-openssl-defaults - version compatibility baseline for Perl OpenSSL packages
  r-cran-openssl - GNU R toolkit for encryption, signatures and certificates based on OpenSSL
  libssl-utils-clojure - library for SSL certificate management on the JVM
  • Tanks, so I will come back to my previous plan. Will try to investigate, why libssl-dev is not found during "make" process. – C D Mar 17 at 8:55

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.