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 04 Mar 2009 03:59:58 AM UTC  
 
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 03 Sep 2010 12:20:09 PM UTC, comment #17:

Assuming fixed again.

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

Patch applied in trunk.

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

This is apparently still a bug.

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

Assuming fixed.

Benjamin Wolsey <bwy>
Project MemberIn charge of this item.
Sun 08 Nov 2009 05:35:30 PM UTC, comment #13:

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

Praveen Arimbrathodiyil <praveen_a>
Sun 08 Nov 2009 08:49:42 AM UTC, 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 07 Nov 2009 06:39:47 PM UTC, 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 27 Mar 2009 11:25:19 PM UTC, 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 27 Mar 2009 03:53:42 PM UTC, 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 05 Mar 2009 12:12:12 AM UTC, 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 04 Mar 2009 11:35:42 PM UTC, 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 04 Mar 2009 11:17:06 PM UTC, 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 04 Mar 2009 06:27:44 PM UTC, 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 04 Mar 2009 06:26:42 PM UTC, comment #4:

moc klash_part.h > klash_part.moc.in

Benjamin Wolsey <bwy>
Project MemberIn charge of this item.
Wed 04 Mar 2009 06:22:50 PM UTC, 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 04 Mar 2009 06:17:57 PM UTC, 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 04 Mar 2009 06:56:46 AM UTC, 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 04 Mar 2009 03:59:58 AM UTC, 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 03 Sep 2010 12:20:09 PM UTCbwyStatusReady For Test=>Fixed
      Open/ClosedOpen=>Closed
    Wed 01 Sep 2010 09:25:26 AM UTCbwyAssigned torsavoye=>bwy
    Wed 01 Sep 2010 09:25:25 AM UTCbwyStatusConfirmed=>Ready For Test
    Thu 26 Aug 2010 06:56:41 PM UTCchithanhAttached File-=>Added gnash-0.8.7-moc-qt4.patch, #21316
    Thu 26 Aug 2010 06:52:53 PM UTCbwyStatusFixed=>Confirmed
      Open/ClosedClosed=>Open
    Wed 25 Aug 2010 11:44:29 AM UTCbwyStatusReady For Test=>Fixed
      Open/ClosedOpen=>Closed
    Wed 04 Mar 2009 06:27:44 PM UTCrsavoyeStatusNone=>Ready For Test
      Assigned toNone=>rsavoye

    Back to the top


    Powered by Savane 3.1-cleanup