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

Submitter:  Øyvind Sæther <xiando>
Submitted:  Wed 04 Mar 2009 03:59:58 AM UTC
   
 
Category:  gui-kde4 Severity:  3 - Normal
Release:  None Status:  Fixed
Privacy:  Public Assigned to:  bwy
Open/Closed:  Closed
* Mandatory Fields

Add a New Comment Rich Markup
   

Jump to the original submission

Fri 03 Sep 2010 12:20:09 PM UTC, comment #17: 

Assuming fixed again.

Benjamin Wolsey <bwy>
Group Member
Wed 01 Sep 2010 09:25:26 AM UTC, comment #16: 

Patch applied in trunk.

Benjamin Wolsey <bwy>
Group Member
Thu 26 Aug 2010 06:52:53 PM UTC, comment #15: 

This is apparently still a bug.

Benjamin Wolsey <bwy>
Group Member
Wed 25 Aug 2010 11:44:29 AM UTC, comment #14: 

Assuming fixed.

Benjamin Wolsey <bwy>
Group Member
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>
Group administrator
Wed 04 Mar 2009 06:26:42 PM UTC, comment #4: 

moc klash_part.h > klash_part.moc.in

Benjamin Wolsey <bwy>
Group Member
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>
Group Member
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 Files:
   
   
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
  • -email is unavailable- added by chithanh (Updated the item)
  • -email is unavailable- added by praveen_a (Posted a comment)
  • -email is unavailable- added by hpeters (Posted a comment)
  • -email is unavailable- added by rsavoye (Posted a comment)
  • -email is unavailable- added by bwy (Posted a comment)
  • -email is unavailable- added by xiando (Submitted the item)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only logged-in users can vote.

     

    Follow 11 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2010-09-03 bwy StatusReady For Test Fixed
        Open/ClosedOpen Closed
    2010-09-01 bwy Assigned torsavoye bwy
    2010-09-01 bwy StatusConfirmed Ready For Test
    2010-08-26 chithanh Attached File- Added gnash-0.8.7-moc-qt4.patch, #21316
    2010-08-26 bwy StatusFixed Confirmed
        Open/ClosedClosed Open
    2010-08-25 bwy StatusReady For Test Fixed
        Open/ClosedOpen Closed
    2009-03-04 rsavoye StatusNone Ready For Test
        Assigned toNone rsavoye

    Back to the top

    Powered by Savane 3.13-758e.
    Corresponding source code