Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 56717 - emergeing cinelerra 1.2.0 exits while installing binary
Summary: emergeing cinelerra 1.2.0 exits while installing binary
Status: RESOLVED WONTFIX
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: x86 Linux
: High blocker (vote)
Assignee: Gentoo Media-video project
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 60255
  Show dependency tree
 
Reported: 2004-07-11 12:56 UTC by Andrew Ehrlich
Modified: 2005-01-17 05:20 UTC (History)
4 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
ebuild modified for gcc 3.3.3 and 3.4.1 (cinelerra-1.2.0.ebuild,2.03 KB, text/plain)
2004-07-13 16:02 UTC, Manuel Expósito
Details
This patch avoid constants deletion when compiling ffmpeg (gcc_3.3.3_omit_unused_const.patch,370 bytes, patch)
2004-07-13 16:05 UTC, Manuel Expósito
Details | Diff
Patch to fix gettext support in cinelerra 1.2.0 (cinelerra-1.2.0-l10n.patch,1.36 KB, patch)
2004-08-19 04:29 UTC, Matteo Settenvini
Details | Diff
Patch to the ebuild (cinelerra-1.2.0.ebuild.patch,364 bytes, patch)
2004-08-19 05:05 UTC, Matteo Settenvini
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Andrew Ehrlich 2004-07-11 12:56:28 UTC
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"
Comment 1 Marc Hildebrand (RETIRED) gentoo-dev 2004-07-12 01:15:19 UTC
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
Comment 2 Andrew Ehrlich 2004-07-12 04:24:29 UTC
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
Comment 3 Manuel Expósito 2004-07-13 09:15:36 UTC
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.
Comment 4 Manuel Expósito 2004-07-13 16:02:19 UTC
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
Comment 5 Manuel Expósito 2004-07-13 16:05:26 UTC
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
Comment 6 Manuel Expósito 2004-07-13 16:11:02 UTC
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.
Comment 7 Matteo Settenvini 2004-08-19 04:11:13 UTC
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.
Comment 8 Matteo Settenvini 2004-08-19 04:29:26 UTC
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... ;)
Comment 9 Matteo Settenvini 2004-08-19 05:05:18 UTC
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.
Comment 10 Quantumstate 2004-08-23 20:07:55 UTC
Apparently this patch still hasn't made it into portage, because it failed the same today.
Comment 11 Quantumstate 2004-08-24 10:20:29 UTC
Anyway, the patch didn't work for me.
Comment 12 Matteo Settenvini 2004-08-24 10:52:17 UTC
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.
Comment 13 Marc Hildebrand (RETIRED) gentoo-dev 2004-08-24 12:25:07 UTC
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.
Comment 14 Quantumstate 2004-08-25 09:04:38 UTC
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
Comment 15 Matteo Settenvini 2004-08-25 09:45:44 UTC
> 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.
Comment 16 Luca Barbato gentoo-dev 2005-01-17 05:20:00 UTC
please use cinelerra-cvs, I'll remove completely cinelerra since is unmaintainable and the cvs.cinelerra.org branch looks more live and sane.