I emerged cinelerra 1.2.0 and got... make[3]: Leaving directory `/var/tmp/portage/cinelerra-1.2.0/work/cinelerra-1.2.0/plugins/zoomblur' make[2]: Leaving directory `/var/tmp/portage/cinelerra-1.2.0/work/cinelerra-1.2.0/plugins' make[2]: Entering directory `/var/tmp/portage/cinelerra-1.2.0/work/cinelerra-1.2.0/po' make[2]: Nothing to be done for `all'. make[2]: Leaving directory `/var/tmp/portage/cinelerra-1.2.0/work/cinelerra-1.2.0/po' make[1]: Leaving directory `/var/tmp/portage/cinelerra-1.2.0/work/cinelerra-1.2.0' nostrip >>> Install cinelerra-1.2.0 into /var/tmp/portage/cinelerra-1.2.0/image/ category media-video x86 >>> dobin: making cinelerra executable... install: cannot stat `cinelerra': No such file or directory !!! ERROR: media-video/cinelerra-1.2.0 failed. !!! Function src_install, Line 61, Exitcode 1 !!! cinelerra not built Reproducible: Always Steps to Reproduce: 1. 2. 3. Actual Results: emerge failed as described above Expected Results: emerge should have finished successfully Portage 2.0.50-r8 (default-x86-1.4, gcc-3.3.3, glibc-2.3.3.20040420-r0, 2.6.1-gentoo-r1) ================================================================= System uname: 2.6.1-gentoo-r1 i686 AMD Athlon(tm) XP 2600+ Gentoo Base System version 1.4.3.8p1 Autoconf: sys-devel/autoconf-2.59 Automake: sys-devel/automake-1.8.5-r1 ACCEPT_KEYWORDS="x86 ~x86" AUTOCLEAN="yes" CFLAGS="-march=athlon-xp" CHOST="i686-pc-linux-gnu" COMPILER="gcc3" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3.2/share/config /usr/kde/3/share/config /usr/lib/mozilla/defaults/pref /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-march=athlon-xp" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs ccache sandbox" GENTOO_MIRRORS="http://gentoo.mirrors.pair.com/" MAKEOPTS="-j2" PKGDIR="/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="" SYNC="rsync://rsync.us.gentoo.org/gentoo-portage/" USE="3dfx 3dnow X aalib alsa apm avi berkdb cdr crypt cups dvd encode esd foomaticdb gdbm gif gnome gphoto2 gpm gtk gtk2 guile imlib jabber jpeg ldap libg++ libwww mad mikmod mmx motif mpeg msn mysql ncurses nls oggvorbis opengl oss pam pdflib perl png ppds python quicktime readline sdl slang spell ssl svga tcltk tcpd truetype usb x86 xml2 xmms xv zlib"
Please cd into the cinelerra build directory (/var/tmp/portage/cinelerra-1.2.0/work/cinelerra-1.2.0/i686 iirc) and execute "make" in that directory. You should see the actual error message why cinelerra's not building. If it looks like "undefined reference to `VDeviceV4L2JPEG::VDeviceV4L2JPEG[in-charge](VideoDevice*)" try to maually edit the ebuild and add a "-DHAVE_V4L2" to CXXFLAGS. Otherwise please paste the error message here. Cheers, Marc
In the directory " /var/tmp/portage/cinelerra-1.2.0/work/cinelerra-1.2.0/" (i686 only contains "soundtest" "soundtest.o"), make finishes with: make[3]: Entering directory `/var/tmp/portage/cinelerra-1.2.0/work/cinelerra-1.2.0/plugins/translate' make[3]: `../i686/translate.plugin' is up to date. make[3]: Leaving directory `/var/tmp/portage/cinelerra-1.2.0/work/cinelerra-1.2.0/plugins/translate' make[3]: Entering directory `/var/tmp/portage/cinelerra-1.2.0/work/cinelerra-1.2.0/plugins/videoscope' make[3]: `../i686/videoscope.plugin' is up to date. make[3]: Leaving directory `/var/tmp/portage/cinelerra-1.2.0/work/cinelerra-1.2.0/plugins/videoscope' make[3]: Entering directory `/var/tmp/portage/cinelerra-1.2.0/work/cinelerra-1.2.0/plugins/wave' make[3]: `../i686/wave.plugin' is up to date. make[3]: Leaving directory `/var/tmp/portage/cinelerra-1.2.0/work/cinelerra-1.2.0/plugins/wave' make[3]: Entering directory `/var/tmp/portage/cinelerra-1.2.0/work/cinelerra-1.2.0/plugins/whirl' make[3]: `../i686/whirl.plugin' is up to date. make[3]: Leaving directory `/var/tmp/portage/cinelerra-1.2.0/work/cinelerra-1.2.0/plugins/whirl' make[3]: Entering directory `/var/tmp/portage/cinelerra-1.2.0/work/cinelerra-1.2.0/plugins/wipe' make[3]: `../i686/wipe.plugin' is up to date. make[3]: Leaving directory `/var/tmp/portage/cinelerra-1.2.0/work/cinelerra-1.2.0/plugins/wipe' make[3]: Entering directory `/var/tmp/portage/cinelerra-1.2.0/work/cinelerra-1.2.0/plugins/yuv' make[3]: `../i686/yuv.plugin' is up to date. make[3]: Leaving directory `/var/tmp/portage/cinelerra-1.2.0/work/cinelerra-1.2.0/plugins/yuv' make[3]: Entering directory `/var/tmp/portage/cinelerra-1.2.0/work/cinelerra-1.2.0/plugins/zoomblur' make[3]: `../i686/zoomblur.plugin' is up to date. make[3]: Leaving directory `/var/tmp/portage/cinelerra-1.2.0/work/cinelerra-1.2.0/plugins/zoomblur' make[2]: Leaving directory `/var/tmp/portage/cinelerra-1.2.0/work/cinelerra-1.2.0/plugins' make[2]: Entering directory `/var/tmp/portage/cinelerra-1.2.0/work/cinelerra-1.2.0/po' make[2]: Nothing to be done for `all'. make[2]: Leaving directory `/var/tmp/portage/cinelerra-1.2.0/work/cinelerra-1.2.0/po' make[1]: Leaving directory `/var/tmp/portage/cinelerra-1.2.0/work/cinelerra-1.2.0' However, make install returns: make -f build/Makefile.cinelerra install make[1]: Entering directory `/var/tmp/portage/cinelerra-1.2.0/work/cinelerra-1.2.0' make -C cinelerra install make[2]: Entering directory `/var/tmp/portage/cinelerra-1.2.0/work/cinelerra-1.2.0/cinelerra' rm -f /usr/bin/cinelerra cp i686/cinelerra /usr/bin cp: cannot stat `i686/cinelerra': No such file or directory make[2]: *** [install] Error 1 make[2]: Leaving directory `/var/tmp/portage/cinelerra-1.2.0/work/cinelerra-1.2.0/cinelerra' make[1]: *** [install] Error 2 make[1]: Leaving directory `/var/tmp/portage/cinelerra-1.2.0/work/cinelerra-1.2.0' make: *** [install] Error 2
I had that problem with cinelerra-1.1.7 and 1.2.0 using gcc 3.3.3 and 3.4.1 As far as I know, the problem is caused because that gcc versions exclude from .a files symbols not used.This happens when using -O2 -O3 and -O4 (optimization =>exclude unused const). Due to this, the cinelerra have problems with libraries of ffmpeg and quicktime (and others I suppose). The solution I found is to modify the ebuild file and changing the line: export CFLAGS=${CFLAGS} and let it say: export CFLAGS=" -O1 " ${CFLAGS} This way the gcc compiler don't drop not used const. I don't know any other solution, but this works for me.
Created attachment 35345 [details] ebuild modified for gcc 3.3.3 and 3.4.1 This ebuild checks if the compiler is version 3.3.X or 3.4.X. If so it will: 1) define -O1 to keep constants unused 2) apply the patch, needed to ffmpeg, which CFLAGS isn't generated from enviroment CFLAGS
Created attachment 35346 [details, diff] This patch avoid constants deletion when compiling ffmpeg This patch modifies the default value of FFMPEG_CFLAGS in /var/tmp/portage/cinelerra-1.2.0/work/cinelera-1.2.0/quicktime/Makefile.ffmpeg. This is needed because the former variable isn't generated from environmental CFLAGS
My first comment was not complete. If you use both attached files, cinelerra-1.2.0 will compile in gcc-3.4.1 (as far as I could test). Steps: 1) make backup of /usr/portage/media-video/cinelerra/cinelerra-1.2.0.ebuild 2) copy the first attachment overwriteen the ebuild file 3) copy the patch in /usr/portage/media-video/cinelerra/files 4) type: ACCEP_KEYWORDS="~x86" emerge cinelerra-1.2.0 5) delete the copied files and restore the original ebuild As far as I tested this works for pentium4, gcc-3.4.1. How this is not a good solution, I'll continue with this. I think we can get something using the -fkeep-static-constants in the gcc.
I think that the problem lies elsewhere. When doing "make" I noticed this error: C++ i686/main.o main.C: In function `int main(int, char**)': main.C:53: error: `LC_MESSAGES' undeclared (first use this function) main.C:53: error: (Each undeclared identifier is reported only once for each function it appears in.) main.C:53: error: `setlocale' undeclared (first use this function) main.C:54: error: `LC_CTYPE' undeclared (first use this function) make[2]: *** [i686/main.o] Error 1 however, the process doesn't stop, and it's difficult to see these lines between all the output that follows (it proceeds to compile plugins after the main executable). Therefore, "cinelerra" binary isn't created, but make doesn't stop as it should. Anyway, the Cinelerra theam should be informed that they should use automake/autotools to manage gettext i18n. Moreover, in the actual way, locales are always put in /usr/share/locale, which could vary on some machines. I'm strongly against the compilation of absolute paths inside binaries. At least, they should be inside #ifndef/#define/#endif statements. Now you can pass LOCALEDIR to make as an environment variable (and therefore in the ebuild), but I didn't do it. I'll attach some temporary patches. They'll work at this time, but the only sure way here is to switch to autotools to manage gettext by the Cinelerra team. They also assume that gettext.h is in /usr/share/gettext, which is a good assumption to do on Gentoo machines, but then we need a dependency on the ebuild.
Created attachment 37721 [details, diff] Patch to fix gettext support in cinelerra 1.2.0 This is the patch to the Makefile and main.C. It'll work for now, but it's a kluge. I'll do the ebuild patch after lunch... ;)
Created attachment 37723 [details, diff] Patch to the ebuild That's it. Haven't tried for systems without gettext, though. Probably we'll need a "nls" flag. For the moment, this should satisfy 99% users.
Apparently this patch still hasn't made it into portage, because it failed the same today.
Anyway, the patch didn't work for me.
Quantumstate, can you check what exactly happens? Please: 1- Unpack cinelerra to a folder 2- Configure it 3- Go to the "cinelerra" subdirectory of the source tree 4- Type "make" from there 5- Report the error that prevents the executable by being created (probably in main.C). 6- Note it. 7- Apply the patch to fix gettext support (if the error is related to comment #7, else you can stop here). 8- Always in the "cinelerra" subdir, "make" again. Maybe you'll need to "make clean" before. 9- Note down the error if it has changed 10- Post the two errors here Thanks.
Thanks for all the effort folks! While you're at it, would you like to try out version 1.2.1? I have compilation errors at the moment. Maybe you can manage to apply you fixes? Cheers, Marc.
Thanks Matteo. Tried this, and indeed the problem is the same as in #7. So I applied the patch, which I assume is the one in #8, and then it made it through z*. (All of the attachments hereto want to save as "attachment.cgi", so I don't know what they're supposed to be named. Apparently there's a problem applying the patch through portage, after applying the patch in #9. I patched the ebuild and saved #8 attach as cinelerra-1.2.0-l10n.patch . I would re-do the ebuild work, but must try and find a job now. My new error in this test compile may be due to other parts not being compiled for this test? C++ i686/vwindowgui.o C++ i686/workarounds.o C++ i686/zoombar.o C++ i686/zoompanel.o LD i686/cinelerra g++: ../libavc1394-0.4.1/i686/libavc.a: No such file or directory g++: ../quicktime/i686/libquicktime.a: No such file or directory g++: ../esound/i686/libesound.a: No such file or directory g++: ../tiff-v3.5.7/i686/libtiff.a: No such file or directory g++: ../guicast/i686/libguicast.a: No such file or directory g++: ../libmpeg3/i686/libmpeg3.a: No such file or directory g++: ../libsndfile-1.0.5/i686/libsndfile.a: No such file or directory g++: ../uuid/i686/libuuid.a: No such file or directory g++: ../mpeg2enc/i686/mpeg2enc.a: No such file or directory g++: ../toolame-02l/i686/toolame.a: No such file or directory g++: ../alsa-lib-1.0.2/i686/libasound.a: No such file or directory g++: ../libraw1394-0.9.0/i686/libraw1394.a: No such file or directory make: *** [i686/cinelerra] Error 1
> My new error in this test compile may be due to other parts not being compiled for this test? 99%, yes. > I patched the ebuild and saved #8 attach as cinelerra-1.2.0-l10n.patch . I would re-do the ebuild work, but must try and find a job now. I know it's a silly question, but you did put the patch in the files/ subdirectory of /usr/portage/media-video/cinelerra/, did you? Else, we need to find where the problem lies... try emerging cinelerra through: "emerge cinelerra > cinelerra.compileproblem 2>&1" and attach here the resulting file (cinelerra.compileproblem) when it's done. (Anyway, I'm having some problems with cinelerra anyway, once compiled: it seems it doesn't import/show clips... but maybe it's me that doesn't rtfm. It would be another bug, though.) For Marc (comment #13): Cinelerra 1.2.1 needs a rewrite of the gcc34 patch, and also of mine. I can adapt mine, but the gcc34 one is a job for the pkg mantainer. For the moment, getting the 1.2.0 to work is the priority. Speak out your voice in bug #60255.
please use cinelerra-cvs, I'll remove completely cinelerra since is unmaintainable and the cvs.cinelerra.org branch looks more live and sane.