salsaman / LiVES

LiVES is a feature rich application which combines elements of VJ and video editing software. The current version runs on Linux / BSD. Check_out_the_new_discussion_area https://github.com/salsaman/LiVES/discussions
http://lives-video.com
GNU General Public License v3.0
89 stars 11 forks source link

Compile 4.0 #50

Open papoteur-mga opened 1 year ago

papoteur-mga commented 1 year ago

Hello, I tried to build the current state of the 4.0 branch for Mageia cauldron (next release). What I have done (in our rpm spec file):

./autogen.sh
%configure   --disable-sdl2 --disable-projectM --enable-threads=posix
%make_build CPPFLAGS="`pkg-config --cflags libtirpc`"

While building, I get this error:

make[1]: Entering directory '/builddir/build/BUILD/LiVES-LiVES-4.0/src'
gcc -DPACKAGE_NAME=\"LiVES\" -DPACKAGE_TARNAME=\"lives\" -DPACKAGE_VERSION=\"3.2.1-pre\" -DPACKAGE_STRING=\"LiVES\ 3.2.1-pre\" -DPACKAGE_BUGREPORT=\"https://github.com/salsaman/LiVES/issues\" -DPACKAGE_URL=\"http://lives-video.com\" -DPACKAGE=\"lives\" -DVERSION=\"3.2.1-pre\" -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DHAVE_WCHAR_H=1 -DSTDC_HEADERS=1 -D_ALL_SOURCE=1 -D_DARWIN_C_SOURCE=1 -D_GNU_SOURCE=1 -D_HPUX_ALT_XOPEN_SOCKET_API=1 -D_NETBSD_SOURCE=1 -D_OPENBSD_SOURCE=1 -D_POSIX_PTHREAD_SEMANTICS=1 -D__STDC_WANT_IEC_60559_ATTRIBS_EXT__=1 -D__STDC_WANT_IEC_60559_BFP_EXT__=1 -D__STDC_WANT_IEC_60559_DFP_EXT__=1 -D__STDC_WANT_IEC_60559_FUNCS_EXT__=1 -D__STDC_WANT_IEC_60559_TYPES_EXT__=1 -D__STDC_WANT_LIB_EXT2__=1 -D__STDC_WANT_MATH_SPEC_FUNCS__=1 -D_TANDEM_SOURCE=1 -D__EXTENSIONS__=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DHAVE_PTHREAD=1 -DGETTEXT_PACKAGE=\"lives\" -DLOCALEDIR=\"/usr/share/locale\" -DPREFIX=\"/usr\" -DLiVES_VERSION=\"3.2.1-pre\" -DENABLE_NLS=1 -DHAVE_GETTEXT=1 -DHAVE_DCGETTEXT=1 -DHAVE_LIBDL=1 -DHAVE_POSIX_MEMALIGN=1 -DHAVE_POSIX_FADVISE=1 -DHAVE_POSIX_FALLOCATE=1 -DHAVE_GETENTROPY=1 -DHAVE_SYS_PRCTL_H=1 -DHAVE_LINUX_JOYSTICK_H=1 -DHAVE_JACK_TRANSPORT_H=1 -DHAVE_BZLIB_H=1 -DHAVE_LADSPA_H=1 -DHAVE_LINUX_VIDEODEV2_H=1 -DHAVE_FREI0R_H=1 -DHAVE_LIBRAW1394_RAW1394_H=1 -DHAVE_LIBAVC1394_AVC1394_H=1 -DHAVE_LIBAVC1394_ROM1394_H=1 -I.  -DPACKAGE_DATA_DIR=\""/usr/share"\" -DLIVES_DIR=\"""\" -DPACKAGE_LOCALE_DIR=\""/usr/share/locale"\" -I .. -I "../libOSC" -I/usr/include/mjpegtools -I/usr/include/mjpegtools/mpeg2enc -I/usr/include/mjpegtools/mplex -I/usr/include/unicap -I/usr/include/gtk-3.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/fribidi -I/usr/include/libxml2 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/gio-unix-2.0 -I/usr/include/atk-1.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include -I/usr/include/at-spi-2.0 -pthread   -I/usr/include/tirpc  -fcommon -fPIE -Wstrict-aliasing=0 -Wall -DHAVE_YUV4MPEG=1 -DHAVE_LDVGRAB=1 -I libavc1394/avc1394.h -I libraw1394/raw1394.h -I libraw1394/rom1394.h  -I/usr/include/liboil-0.3  -DENABLE_OIL=1 -I/usr/include/gtk-3.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/fribidi -I/usr/include/libxml2 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/gio-unix-2.0 -pthread  -DHAVE_WAYLAND=1 -DLIBAV_TRANSCODE=1 -DIS_X86_64   -DIS_LINUX_GNU=1   -DENABLE_OSC=1 -DALSA_MIDI=1 -I/usr/include/libpng16  -DUSE_LIBPNG=1 -DUSE_SWSCALE=1 -DENABLE_JACK=1 -DENABLE_JACK_TRANSPORT=1 -DJACK_V2=1 -D_REENTRANT -DHAVE_PULSE_AUDIO=1 -DHAVE_PA_STREAM_BEGIN_WRITE=1  -DENABLE_GIW=1 -DHAVE_UNICAP=1 -DNEED_LOCAL_WEED=1 -DNEED_LOCAL_WEED_UTILS = 1 -DNEED_LOCAL_WEED_HOST_UTILS = 1 -DDISABLE_GSLICE=1 -DNEED_LOCAL_WEED_UTILS=1 -DNEED_LOCAL_WEED_COMPAT=1 -DLIVES_LIBDIR=\""/usr/lib64"\"  -DHAVE_LIBVISUAL=1 -DHAVE_FREI0R=1 -DHAVE_LADSPA=1  -DHAVE_XRENDER=1 -DHAVE_X11=1 -DHAVE_OPENGL=1  -DHAVE_WEBM=1 -DHAVE_LINUX_JOYSTICK_H=1 -DHAVE_PRCTL=1  -O2 -g -pipe -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -fasynchronous-unwind-tables -Wall -c -o rpmalloc.o rpmalloc.c
gcc: warning: =: linker input file unused because linking not done
gcc: error: =: linker input file not found: No such file or directory
gcc: warning: 1: linker input file unused because linking not done
gcc: error: 1: linker input file not found: No such file or directory
gcc: warning: =: linker input file unused because linking not done
gcc: error: =: linker input file not found: No such file or directory
gcc: warning: 1: linker input file unused because linking not done
gcc: error: 1: linker input file not found: No such file or directory
make[1]: *** [Makefile:1281: rpmalloc.o] Error 1

I know that this is work in progress, but perhaps do I something wrong? I added the ./autogen.sh because without it, I have no configure.

papoteur-mga commented 1 year ago

PS: I try this because with 3.2.0, build fails with:

libav_stream.c:465:10: error: 'AVStream' has no member named 'codec'
  465 |   ost->st->codec = ost->enc = c;
      |          ^~

I presume this error occurs because of ffmpeg 5.0.

salsaman commented 1 year ago

LiVES 4.0 is a Work In Progress as you point out. I am focusing on getting things working first before looking into new issues, so apologies for the delay in responding.

If you have developer skills, you could look into the libav tests in configure.ac and make updates to libav_helper.h in the same directory.

The usual thing is test for a libav macro or presence of a a library function, set an automake variable based on this, convert this to a define (-D) in Makefile.am, then define a symbol in libav_helper.h accordingly, and replace the code with the symbolic name in the C file. There are plenty of examples of this already. The only hard parts are devising the test condition, and making a symbol which works for both old and new versions.

papoteur-mga commented 1 year ago

Hello, Sorry, I have no C developer skill, I just hope that someone can go further with your explanation.

salsaman commented 1 year ago

While you are waiting, check out the new Discussions area. I'll be posting updates about the new version, and you could ask for help in the Suggestions and problems category, feel free to use any of the categories though https://github.com/salsaman/LiVES/discussions