loki-47-6F-64 / sunshine

Host for Moonlight Streaming Client
GNU General Public License v3.0
1.77k stars 152 forks source link

Feature request: Add build support for other distros #50

Open bitrot-alpha opened 4 years ago

bitrot-alpha commented 4 years ago

Fedora has slightly different conventions and package names, the Boost libraries they use are slightly different as well. I installed all the dependencies, but sunshine still won't build.

[arashi@Aoi build]$ cmake clean build ..
-- Checking for module 'avformat'
--   Package 'avformat', required by 'virtual:world', not found
-- Found avformat include dirs: /usr/include/ffmpeg
-- Using FFMpeg dir parent as hint: /usr/include
-- Found avformat libs: /usr/lib64/libavformat.so
-- found avformat: include /usr/include/ffmpeg lib /usr/lib64/libavformat.so
-- Checking for module 'avdevice'
--   Package 'avdevice', required by 'virtual:world', not found
-- Found avdevice include dirs: /usr/include/ffmpeg
-- Using FFMpeg dir parent as hint: /usr/include
-- Found avdevice libs: /usr/lib64/libavdevice.so
-- found avdevice: include /usr/include/ffmpeg lib /usr/lib64/libavdevice.so
-- Checking for module 'avcodec'
--   Package 'avcodec', required by 'virtual:world', not found
-- Found avcodec include dirs: /usr/include/ffmpeg
-- Using FFMpeg dir parent as hint: /usr/include
-- Found avcodec libs: /usr/lib64/libavcodec.so
-- found avcodec: include /usr/include/ffmpeg lib /usr/lib64/libavcodec.so
-- Checking for module 'avutil'
--   Package 'avutil', required by 'virtual:world', not found
-- Found avutil include dirs: /usr/include/ffmpeg
-- Using FFMpeg dir parent as hint: /usr/include
-- Found avutil libs: /usr/lib64/libavutil.so
-- found avutil: include /usr/include/ffmpeg lib /usr/lib64/libavutil.so
-- Checking for module 'swscale'
--   Package 'swscale', required by 'virtual:world', not found
-- Found swscale include dirs: /usr/include/ffmpeg
-- Using FFMpeg dir parent as hint: /usr/include
-- Found swscale libs: /usr/lib64/libswscale.so
-- found swscale: include /usr/include/ffmpeg lib /usr/lib64/libswscale.so
-- /usr/lib64/libavformat.so/usr/lib64/libavdevice.so/usr/lib64/libavcodec.so/usr/lib64/libavutil.so/usr/lib64/libswscale.so
CMake Warning (dev) at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:272 (message):
  The package name passed to `find_package_handle_standard_args` (FFMPEG)
  does not match the name of the calling package (FFmpeg).  This can lead to
  problems in calling code that expects `find_package` result variables
  (e.g., `_FOUND`) to follow a certain pattern.
Call Stack (most recent call first):
  FindFFmpeg.cmake:141 (find_package_handle_standard_args)
  CMakeLists.txt:48 (find_package)
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Error at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:164 (message):
  Could NOT find Boost (missing: log filesystem) (found version "1.69.0")
Call Stack (most recent call first):
  /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:445 (_FPHSA_FAILURE_MESSAGE)
  /usr/share/cmake/Modules/FindBoost.cmake:2166 (find_package_handle_standard_args)
  CMakeLists.txt:115 (find_package)

-- Configuring incomplete, errors occurred!
See also "/home/arashi/Games/build/sunshine/build/CMakeFiles/CMakeOutput.log".
See also "/home/arashi/Games/build/sunshine/build/CMakeFiles/CMakeError.log".

CMake Error at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:164 (message): Could NOT find Boost (missing: log filesystem) (found version "1.69.0")

Boost is installed, but for whatever reason, CMake doesn't like it.

zews79 commented 3 years ago

Fedora 33

sudo dnf install -y openssl-devel ffmpeg-devel boost-devel boost-static.x86_64 pulseaudio-libs-devel opus-devel libXtst-devel libX11-devel libXfixes-devel libevdev-devel libxcb-devel

Also I had to change DISPLAY to :1 in sunshine.service.

zews79 commented 3 years ago

Here are my build steps on a fresh install of Fedora 33

sudo dnf group install "Development Tools"

sudo dnf install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm

sudo dnf install -y openssl-devel ffmpeg-devel boost-devel boost-static.x86_64 pulseaudio-libs-devel opus-devel libXtst-devel libX11-devel libXfixes-devel libevdev-devel libxcb-devel cmake

git clone https://github.com/loki-47-6F-64/sunshine.git --recurse-submodules

cd sunshine/

mkdir build

cd build/

cmake ..

make
adamboutcher commented 3 years ago

Here are my build steps on a fresh install of Fedora 33

sudo dnf group install "Development Tools"

sudo dnf install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm

sudo dnf install -y openssl-devel ffmpeg-devel boost-devel boost-static.x86_64 pulseaudio-libs-devel opus-devel libXtst-devel libX11-devel libXfixes-devel libevdev-devel libxcb-devel cmake

git clone https://github.com/loki-47-6F-64/sunshine.git --recurse-submodules

cd sunshine/

mkdir build

cd build/

cmake ..

make

This should be on the front page for Fedora or pinned at the top for issues. I can confirm it works.

jkms commented 2 years ago

just tried on Fedora 35. I also required the libXrandr-devel package.

sudo dnf group install "Development Tools"
sudo dnf install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
sudo dnf install -y openssl-devel ffmpeg-devel boost-devel boost-static.x86_64 pulseaudio-libs-devel opus-devel libXtst-devel libX11-devel libXrandr-devel libXfixes-devel libevdev-devel libxcb-devel cmake 
git clone https://github.com/loki-47-6F-64/sunshine.git --recurse-submodules
cd sunshine/
mkdir build
cd build/
cmake ..
make