bugGnash - The GNU Flash player - Bugs: bug #25758, klash_part.moc.in made using Qt...

 
 

bug #25758: klash_part.moc.in made using Qt 4.4.3 does not compile with Qt 4.5

Submitted by:  Øyvind Sæther <xiando>
Submitted on:  Wed Mar 4 03:59:58 2009  
 
Category: gui-kde4Severity: 3 - Normal
Release: NoneStatus: Fixed
Privacy: PublicAssigned to: Benjamin Wolsey <bwy>
Open/Closed: Closed

Add a New Comment (Rich MarkupRich Markup):
   

You are not logged in

Please log in, so followups can be emailed to you.

 

(Jump to the original submission Jump to the original submission)

Fri Sep 3 12:20:09 2010, comment #17:

Assuming fixed again.

Benjamin Wolsey <bwy>
Project MemberIn charge of this item.
Wed Sep 1 09:25:26 2010, comment #16:

Patch applied in trunk.

Benjamin Wolsey <bwy>
Project MemberIn charge of this item.
Thu Aug 26 18:52:53 2010, comment #15:

This is apparently still a bug.

Benjamin Wolsey <bwy>
Project MemberIn charge of this item.
Wed Aug 25 11:44:29 2010, comment #14:

Assuming fixed.

Benjamin Wolsey <bwy>
Project MemberIn charge of this item.
Sun Nov 8 17:35:30 2009, comment #13:

make clean removed the old klash4.moc and running make again regenerated the moc file.

Praveen Arimbrathodiyil <praveen_a>
Sun Nov 8 08:49:42 2009, comment #12:

I made some changes to qt4.m4 macro to check if moc version matches qt version. (I am sure if it should be made default)

But even after finding the correct moc version, it does not regenerate klash4.moc file.

[pravi@savannah trunk]$ bzr diff macros/qt4.m4
=== modified file 'macros/qt4.m4'
--- macros/qt4.m4 2009-03-05 19:32:46 +0000
+++ macros/qt4.m4 2009-11-08 08:35:10 +0000
@@ -165,7 +165,36 @@
has_qt4="no"
fi

- AC_PATH_PROGS(MOC4, [moc-qt4 moc], ,[${QTDIR}/bin /usr/lib/qt4/bin /usr/share/qt4/bin/ ${pathlist}])
+ AC_MSG_CHECKING([for QT version])
+ gnash_qt_minor_version="`${PKG_CONFIG} --modversion QtCore`"
+ AC_MSG_RESULT(${gnash_qt_minor_version})
+
+ AC_PATH_PROGS(MOC4, moc-qt4, ,[${QTDIR}/bin /usr/lib/qt4/bin /usr/share/qt4/bin/ ${pathlist}])
+ AC_MSG_CHECKING([for moc-qt4 version])
+ moc_qt4_version=`${MOC4} -v 2>&1 | cut -d '(' -f 2 | cut -d ')' -f1 | cut -d ' ' -f2`
+ AC_MSG_RESULT(${moc_qt4_version})
+
+ AC_MSG_CHECKING([for moc version compatibility with Qt])
+ if test "${gnash_qt_minor_version}" != "${moc_qt4_version}"; then
+ AC_MSG_RESULT([no])
+ AC_PATH_PROGS(MOC, moc, ,[${QTDIR}/bin /usr/lib/qt4/bin /usr/share/qt4/bin/ ${pathlist}])
+ AC_MSG_CHECKING([for moc version])
+ moc_qt4_version=`${MOC} -v 2>&1 | cut -d '(' -f 2 | cut -d ')' -f1 | cut -d ' ' -f2`
+ AC_MSG_RESULT(${moc_qt4_version})
+ AC_MSG_CHECKING([for moc version compatibility with Qt])
+ if test "${gnash_qt_minor_version}" != "${moc_qt4_version}"; then
+ AC_MSG_RESULT([no])
+ else
+ AC_MSG_RESULT([yes])
+ MOC4=${MOC}
+ fi
+ else
+ AC_MSG_RESULT([yes])
+ fi
+
+ AC_MSG_CHECKING([for matching moc version])
+ AC_MSG_RESULT(${MOC4})
+
AC_PATH_PROGS(UIC4, [uic-qt4 uic], ,[${QTDIR}/bin /usr/lib/qt4/bin /usr/share/qt4/bin/ ${pathlist}])

Praveen Arimbrathodiyil <praveen_a>
Sat Nov 7 18:39:47 2009, comment #11:

This bug is still present.

In file included from Kde4Gui.cpp:64:
klash4.moc:14:2: error: #error "This file was generated using the moc from 4.4.3. It"
klash4.moc:15:2: error: #error "cannot be used with the include files from this version of Qt."
klash4.moc:16:2: error: #error "(The moc has changed too much.)"
make[4]: *** [kde4_gnash-Kde4Gui.o] Error 1
make[4]: Leaving directory `/home/pravi/forge/gnash/trunk/gui'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/home/pravi/forge/gnash/trunk/gui'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/home/pravi/forge/gnash/trunk/gui'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/pravi/forge/gnash/trunk'
make: *** [all] Error 2

I have moc and moc-qt4

[pravi@savannah trunk]$ which moc
/opt/qt4/bin/moc
[pravi@savannah trunk]$ which moc-qt4
/usr/bin/moc-qt4
[pravi@savannah trunk]$ moc -version
Qt Meta Object Compiler version 62 (Qt 4.6.0)
[pravi@savannah trunk]$ moc-qt4 -version
Qt Meta Object Compiler version 61 (Qt 4.5.3)
[pravi@savannah trunk]$

it should use appropriate version of moc and regenerate it.

Praveen Arimbrathodiyil <praveen_a>
Fri Mar 27 23:25:19 2009, comment #10:

Iuse Gentoo too and can therefore confirm that it is still broken on Gentoo (except that Harley maintains the live ebuild and has been nice enough to apply a patch which fixes it)

Øyvind Sæther <xiando>
Fri Mar 27 15:53:42 2009, comment #9:

This still doesn't work because your not searching for moc in /usr/bin.
Since that's were it's at under Gentoo it never finds it.

Harley Peters <hpeters>
Thu Mar 5 00:12:12 2009, comment #8:

(sorry for posting a whole lot of .. comments, noticed that everyone gets bothered with mail every time I do)

I do not know if UIC is required or desired, but I did notice that it's not found.

1. checking for uic-qt4... no
2. Mine is called uic, not uic-qt4.
3. uic -v
Qt User Interface Compiler version 4.5.0
4. $ which uic
/usr/bin/uic
5. I also have the QT3 /usr/qt/3/bin/uic file on my system. Other people may have QT3 UIC in /usr/bin and QT4's somewhere else, I'm not quite sure how to solve that (if it's even an issue).

AC_PATH_PROGS(UIC4, [uic-qt4 uic](..) seems to work (for me).

# diff -u /GNU/gentoo/distfiles/bzr-src/gnash/macros/qt4.m4 macros/qt4.m4
--- /GNU/gentoo/distfiles/bzr-src/gnash/macros/qt4.m4 2009-03-04 19:38:09.000000000 +0100
+++ macros/qt4.m4 2009-03-05 01:07:38.000000000 +0100
@@ -165,8 +165,8 @@
has_qt4="no"
fi

- AC_PATH_PROGS(MOC4, [moc-qt4 moc], ,[${QTDIR}/bin /usr/lib/qt4/bin /usr/share/qt4/bin/ ${pathlist}])
- AC_PATH_PROG(UIC4, uic-qt4, ,[${QTDIR}/bin /usr/lib/qt4/bin /usr/share/qt4/bin/ ${pathlist}])
+ AC_PATH_PROGS(MOC4, [moc-qt4 moc], ,[/usr/bin ${QTDIR}/bin /usr/lib/qt4/bin /usr/share/qt4/bin/ ${pathlist}])
+ AC_PATH_PROGS(UIC4, [uic-qt4 uic], ,[/usr/bin ${QTDIR}/bin /usr/lib/qt4/bin /usr/share/qt4/bin/ ${pathlist}])

AC_SUBST([QT4_CFLAGS])

./configure --prefix=/usr --host=i686-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfd
ir=/etc --localstatedir=/var/lib --disable-cygnal --enable-docbook --disable-ghelp --enable-npapi --disable-kparts3 --enable-kparts4 --disable-i810-lod-bias --enable-speex --enable-mit-shm --enable-gui=gtk,kde4 --with-ffmpeg-incl=/usr/include/libavcodec/ --with-plugins-install=system --with-kde3-prefix=/usr/kde/3.5 --with-kde4-prefix=/usr/kde/live --with-npapi-plugindir=/opt/netscape/plugins --enable-renderer=agg --enable-media=ffmpeg --build=i686-pc-linux-gnu
(..)
checking for QT 4.x libraries... -L/usr/lib/qt4 -lQtGui -lQtCore
checking for moc-qt4... no
checking for moc... /usr/bin/moc
checking for uic-qt4... no
checking for uic... /usr/bin/uic
checking for kde4-config... /usr/kde/live/bin/kde4-config
configure: KDE4 prefix from kde4-config is /usr/kde/live

Øyvind Sæther <xiando>
Wed Mar 4 23:35:42 2009, comment #7:

1. # echo $QTDIR
/usr/qt/3

2. I do not appear to have anything like QTDIR which points to QT4.5.

3. I have no idea why, but: Adding /usr/bin before the ${QTDIR}/bin search path works. I did not figure out what's in $pathlist, but if it does include /usr/bin then $pathlist would need to be checked before ${QTDIR}.

# diff macros/qt4.m4 /GNU/gentoo/distfiles/bzr-src/gnash/macros/qt4.m4
168c168
< AC_PATH_PROGS(MOC4, [moc-qt4 moc], ,[/usr/bin ${QTDIR}/bin /usr/lib/qt4/bin /usr/share/qt4/bin/ ${pathlist}])
---

> AC_PATH_PROGS(MOC4, [moc-qt4 moc], ,[${QTDIR}/bin /usr/lib/qt4/bin /usr/share/qt4/bin/ ${pathlist}])


checking for sdl-config... /usr/bin/sdl-config
(cached) checking for QT 4.x headers... /usr/include/qt4
checking for QT 4.x libraries... -L/usr/lib/qt4 -lQtGui -lQtCore
checking for moc-qt4... no
checking for moc... /usr/bin/moc
checking for uic-qt4... no
checking for kde4-config... /usr/kde/live/bin/kde4-config
configure: KDE4 prefix from kde4-config is /usr/kde/live
checking for KDE 4.x header path... -I/usr/kde/live/include

Øyvind Sæther <xiando>
Wed Mar 4 23:17:06 2009, comment #6:

(..)
checking for QT 4.x libraries... -L/usr/lib/qt4 -lQtGui -lQtCore
checking for moc-qt4... no
checking for moc... /usr/qt/3/bin/moc
checking for uic-qt4... no
(..)

In file included from Kde4Gui.cpp:64:
klash4.moc:15:34: error: private/qucomextra_p.h: Ingen slik fil eller filkatalog
klash4.moc:17:2: error: #error "This file was generated using the moc from 3.3.8b. It"
klash4.moc:18:2: error: #error "cannot be used with the include files from this version of Qt."
klash4.moc:19:2: error: #error "(The moc has changed too much.)"
In file included from Kde4Gui.cpp:64:
klash4.moc:22: error: no 'const char* gnash::DrawingWidget::className() const' member function declared in class 'gnash::DrawingWidget'
klash4.moc:27: error: 'QMetaObject* gnash::DrawingWidget::metaObj' is not a static member of 'class gnash::DrawingWidget'

Øyvind Sæther <xiando>
Wed Mar 4 18:27:44 2009, comment #5:

I just checked patch for this into trunk that looks for moc in addition to moc-qt4. None of the system I have used the other name, but now Gnash looks for both when buiding with QT4.

Rob Savoye <rsavoye>
Project Administrator
Wed Mar 4 18:26:42 2009, comment #4:

moc klash_part.h > klash_part.moc.in

Benjamin Wolsey <bwy>
Project MemberIn charge of this item.
Wed Mar 4 18:22:50 2009, comment #3:

rsavoye on #gnash indicated that

AC_PATH_PROG(MOC4, moc-qt4, ,[${QTDIR}/bin /usr/lib/qt4/bin /usr/share/qt4/bin/ ${pathlist}])

does indeed want "moc-qt4".

It's only "moc" on Gentoo.

bwy confirmed that it's only "moc" on Mandriva too.

19:21 < bwy> It's /usr/lib/qt4/bin/moc or /usr/lib/qt3/bin/moc for me.

Øyvind Sæther <xiando>
Wed Mar 4 18:17:57 2009, comment #2:

I can contribute the file to if you are able to teach/explain how and I just need basic GNU/Linux skills and the QT 4.5.

I do have the moc tool installed.

I see gnash/macros/qt4.m4 contains

AC_PATH_PROG(MOC4, moc-qt4, ,[${QTDIR}/bin /usr/lib/qt4/bin /usr/share/qt4/bin/ ${pathlist}])

If I guess correctly then this would look for "moc-qt4".

$ which moc
/usr/bin/moc

$ moc -v
Qt Meta Object Compiler version 61 (Qt 4.5.0)

I do not have the "moc-qt4", just "moc".

Øyvind Sæther <xiando>
Wed Mar 4 06:56:46 2009, comment #1:

The pre-generated MOC file has to be created with one version of Qt and it's always possible for it to be superseded, so it's not a major bug. I don't have Qt 4.5, so I need someone else to contribute a file to fix it.

However, if you have the moc tool installed, configure should regenerate the moc file for you, and if it's not doing so it is a bug.

Benjamin Wolsey <bwy>
Project MemberIn charge of this item.
Wed Mar 4 03:59:58 2009, original submission:

Possible relevant details:

  • Using QT 4.5 (final, released yesterday)
  • Using Gentoo Linux, gnash-cvs layman overlay
  • ebuild details on fail:
  • gcc 4.3.2-r2

[ebuild U ] net-www/gnash-9999 [0.8.5_p20090113] USE="X agg doc ffmpeg gtk kde4 neon nsplugin speex -cairo -cygnal -fb -gnome -gstreamer -kde -opengl -parallel -sdl -test" VIDEO_CARDS="-i810" 0 kB [1]

Compile FAiLURE:

i686-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I.. -DGUI_KDE4 -DGUI_CONFIG=\"KDE4\" -I../libamf -I../libnet -I../libcore -I../libcore/parser -I../libcore/vm -I../libltdl -I../libbase -I../backend -I../libmedia -I../libsound -I../libmedia/ffmpeg -I../libmedia/gst -DLOCALEDIR=\"/usr/share/locale\" -DPLUGINSDIR=\"/usr/lib/gnash/plugins\" -DLIBAVCODEC_IDENT=\"52.11.0\" -I/usr/X11R6/include -pthread -I/usr/include -DPKGDATADIR=\"/usr/share/gnash\" -DRENDERER_CONFIG=\"agg\" -DMEDIA_CONFIG=\"ffmpeg\" -DTARGET_CONFIG=\"\" -DCONFIG_CONFIG="\"--prefix=/usr --host=i686-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --disable-cygnal --enable-docbook --disable-ghelp --enable-npapi --disable-kparts3 --enable-kparts4 --disable-i810-lod-bias --enable-speex --enable-mit-shm --enable-gui=gtk,kde4 --with-ffmpeg-incl=/usr/include/libavcodec/ --with-plugins-install=system --with-kde3-prefix=/usr/kde/3.5 --with-kde4-prefix=/usr --with-npapi-plugindir=/opt/netscape/plugins --enable-renderer=agg --enable-media=ffmpeg --build=i686-pc-linux-gnu\"" -DCXXFLAGS="\"-march=athlon-xp -O2 -pipe -ggdb -pthread -pthread -W -Wall -Wcast-align -Wcast-qual -Wpointer-arith -Wreturn-type -Wnon-virtual-dtor -Wunused -fvisibility-inlines-hidden\"" -I/usr/kde/live/include -I/usr/include/qt4 -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtXml -I/usr/include/qt4/QtDBus -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtOpenGL -I/usr/include/qt4/QtScript -I/usr/include/qt4/QtSql -I/usr/include/qt4/QtTest -I/usr/include/qt4/QtSvg -I/usr/include/qt4/QtWebKit -I/usr/include/agg2 -march=athlon-xp -O2 -pipe -ggdb -pthread -pthread -W -Wall -Wcast-align -Wcast-qual -Wpointer-arith -Wreturn-type -Wnon-virtual-dtor -Wunused -fvisibility-inlines-hidden -MT kde4_gnash-Kde4Gui.o -MD -MP -MF .deps/kde4_gnash-Kde4Gui.Tpo -c -o kde4_gnash-Kde4Gui.o `test -f 'Kde4Gui.cpp' || echo './'`Kde4Gui.cpp
distcc[32656] ERROR: compile (null) on localhost failed
In file included from Kde4Gui.cpp:64:
klash4.moc:14:2: error: #error "This file was generated using the moc from 4.4.3. It"
klash4.moc:15:2: error: #error "cannot be used with the include files from this version of Qt."
klash4.moc:16:2: error: #error "(The moc has changed too much.)"
distcc[32654] ERROR: compile Kde4Gui.cpp on localhost failed
make[3]: *** [kde4_gnash-Kde4Gui.o] Error 1
make[3]: Leaving directory `/var/tmp/portage/net-www/gnash-9999/work/gnash-9999/gui'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/var/tmp/portage/net-www/gnash-9999/work/gnash-9999/gui'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/var/tmp/portage/net-www/gnash-9999/work/gnash-9999'
make: *** [all] Error 2

(I'll compile without the KDE4 technology for now to test for sr #106613 (project gnash))

Please let me know if and how I can provide additional useful information.

Øyvind Sæther <xiando>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach File(s):
   
   
Comment:
   

Attached Files
file #21316:  gnash-0.8.7-moc-qt4.patch added by chithanh (677B - text/x-patch - Gentoo patch to make configure find moc correctly)

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -unavailable- added by chithanh (Updated the item)
  • -unavailable- added by praveen_a (Posted a comment)
  • -unavailable- added by hpeters (Posted a comment)
  • -unavailable- added by rsavoye (Posted a comment)
  • -unavailable- added by bwy (Posted a comment)
  • -unavailable- added by xiando (Submitted the item)
  •  

    Do you think this task is very important?
    If so, you can click here to add your encouragement to it.
    This task has 0 encouragements so far.

    Only logged-in users can vote.

     

    Please enter the title of George Orwell's famous dystopian book (it's a date):

     

     

    Follow 11 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Fri Sep 3 12:20:09 2010bwyStatusReady For Test=>Fixed
      Open/ClosedOpen=>Closed
    Wed Sep 1 09:25:26 2010bwyAssigned torsavoye=>bwy
    Wed Sep 1 09:25:25 2010bwyStatusConfirmed=>Ready For Test
    Thu Aug 26 18:56:41 2010chithanhAttached File-=>Added gnash-0.8.7-moc-qt4.patch, #21316
    Thu Aug 26 18:52:53 2010bwyStatusFixed=>Confirmed
      Open/ClosedClosed=>Open
    Wed Aug 25 11:44:29 2010bwyStatusReady For Test=>Fixed
      Open/ClosedOpen=>Closed
    Wed Mar 4 18:27:44 2009rsavoyeStatusNone=>Ready For Test
      Assigned toNone=>rsavoye

    Back to the top


    Powered by Savane 3.1-cleanup