Hi,

The official FreeRDP package (based on version 2.1.2) on OpenSUSE Leap
is built with -DBUILTIN_CHANNELS=ON.

I think I have a need for non-builtin channels so I'm trying to
compile it myself but changing the flag results in compilation
failing.

Next I tried compiling the upstream 2.4.0 release directly and even
then compilation only succeeds with builtin channels...

I found GitHub issue #4562 where this was previously discussed but was
never fixed or triaged apparently.

Does anyone have experience with this? I can post the full build log
but here's the relevant parts I think:
--
cd /home/builder/build/FreeRDP-2.4.0/build/libfreerdp &&
/usr/bin/cmake -E cmake_symlink_library libfreerdp2.so.2.4.0
libfreerdp2.so.2 libfreerdp2.so
make[2]: Leaving directory '/home/builder/build/FreeRDP-2.4.0/build'
make[1]: Entering directory '/home/builder/build/FreeRDP-2.4.0/build'
[ 64%] Built target freerdp
make[1]: Leaving directory '/home/builder/build/FreeRDP-2.4.0/build'
make: *** [Makefile:172: all] Error 2
error: Bad exit status from /var/tmp/rpm-tmp.jr6821 (%build)
--

This is probably relevant:
--
/usr/bin/cc ... -o libvideo-client.so
CMakeFiles/video-client.dir/video_main.c.o
../../../winpr/libwinpr/libwinpr2.so.2.4.0
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld:
CMakeFiles/video-client.dir/video_main.c.o: in function
`video_onMappedGeometryClear':
/home/builder/build/FreeRDP-2.4.0/channels/video/client/video_main.c:404:
undefined reference to `mappedGeometryUnref'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld:
CMakeFiles/video-client.dir/video_main.c.o: in function
`PresentationContext_unref':
/home/builder/build/FreeRDP-2.4.0/channels/video/client/video_main.c:308:
undefined reference to `mappedGeometryUnref'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld:
/home/builder/build/FreeRDP-2.4.0/channels/video/client/video_main.c:313:
undefined reference to `h264_context_free'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld:
/home/builder/build/FreeRDP-2.4.0/channels/video/client/video_main.c:317:
undefined reference to `yuv_context_free'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld:
CMakeFiles/video-client.dir/video_main.c.o: in function
`VideoFrame_free':
/home/builder/build/FreeRDP-2.4.0/channels/video/client/video_main.c:325:
undefined reference to `mappedGeometryUnref'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld:
CMakeFiles/video-client.dir/video_main.c.o: in function
`PresentationContext_new':
/home/builder/build/FreeRDP-2.4.0/channels/video/client/video_main.c:238:
undefined reference to `h264_context_new'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld:
/home/builder/build/FreeRDP-2.4.0/channels/video/client/video_main.c:244:
undefined reference to `h264_context_reset'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld:
/home/builder/build/FreeRDP-2.4.0/channels/video/client/video_main.c:267:
undefined reference to `yuv_context_new'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld:
/home/builder/build/FreeRDP-2.4.0/channels/video/client/video_main.c:274:
undefined reference to `yuv_context_reset'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld:
CMakeFiles/video-client.dir/video_main.c.o: in function
`video_PresentationRequest':
/home/builder/build/FreeRDP-2.4.0/channels/video/client/video_main.c:465:
undefined reference to `mappedGeometryRef'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld:
CMakeFiles/video-client.dir/video_main.c.o: in function
`PresentationContext_new':
/home/builder/build/FreeRDP-2.4.0/channels/video/client/video_main.c:285:
undefined reference to `h264_context_free'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld:
CMakeFiles/video-client.dir/video_main.c.o: in function `yuv_to_rgb':
/home/builder/build/FreeRDP-2.4.0/channels/video/client/video_main.c:162:
undefined reference to `yuv_context_decode'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld:
CMakeFiles/video-client.dir/video_main.c.o: in function
`video_VideoData':
/home/builder/build/FreeRDP-2.4.0/channels/video/client/video_main.c:843:
undefined reference to `mappedGeometryRef'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld:
/home/builder/build/FreeRDP-2.4.0/channels/video/client/video_main.c:864:
undefined reference to `mappedGeometryUnref'
collect2: error: ld returned 1 exit status
--

As suggested in the GitHub issue, I tried adding -DCHANNEL_GEOMETRY=ON
but that does not fix it.
OpenSUSE does not build FreeRDP with any of the video libraries like
OpenH264, X264 or ffmpeg. Could that be the issue?

My make flags:
--
/usr/bin/cmake /home/builder/build/FreeRDP-2.4.0/. '-GUnix Makefiles'
-DCMAKE_INSTALL_PREFIX:PATH=/usr
-DINCLUDE_INSTALL_DIR:PATH=/usr/include
-DLIB_INSTALL_DIR:PATH=/usr/lib64 -DSYSCONF_INSTALL_DIR:PATH=/etc
-DSHARE_INSTALL_PREFIX:PATH=/usr/share
-DCMAKE_INSTALL_LIBDIR:PATH=lib64 -DCMAKE_INSTALL_LIBEXECDIR=/usr/lib
-DCMAKE_BUILD_TYPE=RelWithDebInfo '-DCMAKE_C_FLAGS=-O2 -g -m64
-fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector
-funwind-tables -fasynchronous-unwind-tables -fPIE -pie -DNDEBUG'
'-DCMAKE_CXX_FLAGS=-O2 -g -m64 -fmessage-length=0 -D_FORTIFY_SOURCE=2
-fstack-protector -funwind-tables -fasynchronous-unwind-tables
-DNDEBUG' '-DCMAKE_Fortran_FLAGS=-O2 -g -m64 -fmessage-length=0
-D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables
-fasynchronous-unwind-tables -DNDEBUG' '-DCMAKE_EXE_LINKER_FLAGS=
-Wl,--as-needed -Wl,--no-undefined -Wl,-z,now'
'-DCMAKE_MODULE_LINKER_FLAGS= -Wl,--as-needed'
'-DCMAKE_SHARED_LINKER_FLAGS= -Wl,--as-needed -Wl,--no-undefined
-Wl,-z,now' -DLIB_SUFFIX=64 -DCMAKE_SKIP_RPATH:BOOL=ON
-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DBUILD_SHARED_LIBS:BOOL=ON
-DBUILD_STATIC_LIBS:BOOL=OFF -DCMAKE_COLOR_MAKEFILE:BOOL=OFF
-DCMAKE_INSTALL_DO_STRIP:BOOL=OFF
-DCMAKE_MODULES_INSTALL_DIR=/usr/share/cmake/Modules
-DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=/usr
-DCMAKE_INSTALL_LIBDIR:PATH=lib64 -DCMAKE_SKIP_RPATH=ON -DWITH_ALSA=ON
-DWITH_CAIRO=ON -DWITH_CUPS=ON -DWITH_CHANNELS=ON
-DBUILTIN_CHANNELS=OFF -DWITH_CLIENT=ON -DWITH_DIRECTFB=OFF
-DWITH_FFMPEG=OFF -DWITH_GSM=ON -DWITH_GSSAPI=OFF
-DWITH_GSTREAMER_1_0=ON -DWITH_GSTREAMER_0_10=OFF -DWITH_ICU=ON
-DWITH_IPP=OFF -DWITH_JPEG=ON -DWITH_LAME=OFF -DWITH_MANPAGES=ON
-DWITH_OPENH264=OFF -DWITH_OPENSSL=ON -DWITH_PCSC=ON -DWITH_PULSE=ON
-DWITH_SERVER=ON -DWITH_SERVER_INTERFACE=ON -DWITH_SHADOW_X11=ON
-DWITH_SHADOW_MAC=ON -DWITH_SOXR=OFF -DWITH_WAYLAND=ON -DWITH_X11=ON
-DWITH_X264=OFF -DWITH_XCURSOR=ON -DWITH_XEXT=ON -DWITH_XKBFILE=ON
-DWITH_XI=ON -DWITH_XINERAMA=ON -DWITH_XRENDER=ON -DWITH_XTEST=ON
-DWITH_XV=ON -DWITH_ZLIB=ON -DWITH_SSE2=ON -DWITH_VAAPI=OFF
-DCHANNEL_URBDRC=ON -DCHANNEL_URBDRC_CLIENT=ON .
--

Thanks.


_______________________________________________
FreeRDP-devel mailing list
FreeRDP-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freerdp-devel

Reply via email to