[arch-dev-public] QT4 moc fails to parse BOOST_JOIN macro of boost 1.53
Some packages (e.g. avogadro) using the BOOST_JOIN macro of boost 1.53 fails to build because of a bug in the Qt MOC compiler. Fedora appears to have a workaround [2]. Would it be possible for someone who knows QT to look at this? Regards, Stéphane [1] https://bugreports.qt-project.org/browse/QTBUG-22829 [2] http://pkgs.fedoraproject.org/cgit/qt.git/tree/qt-everywhere-opensource-src-...
On 28 March 2013 18:43, Stéphane Gaudreault <stephane@archlinux.org> wrote:
Some packages (e.g. avogadro) using the BOOST_JOIN macro of boost 1.53 fails to build because of a bug in the Qt MOC compiler. Fedora appears to have a workaround [2]. Would it be possible for someone who knows QT to look at this?
Regards,
Stéphane
[1] https://bugreports.qt-project.org/browse/QTBUG-22829 [2] http://pkgs.fedoraproject.org/cgit/qt.git/tree/qt-everywhere-opensource-src-...
Yes, this should be a working workaround. It basically disables parsing of the problematic boost headers by automoc by defining their include guards. I've already implemented this workaround in fatrat[1] and luxrender[2]. The only difference between how I used this workaround and how it's used in fedora is that I'm explicitly setting these parameters while compiling something using automoc, while the fedora makes them default for every automoc run (so they don't need to be set explicitly). [1] https://projects.archlinux.org/svntogit/community.git/tree/trunk/QTBUG-22829... [2] https://projects.archlinux.org/svntogit/community.git/tree/trunk/boost-1.53-... Lukas
On 28 March 2013 19:03, Lukas Jirkovsky <l.jirkovsky@gmail.com> wrote:
I've already implemented this workaround in fatrat[1] and luxrender[2]. The only difference between how I used this workaround and how it's used in fedora is that I'm explicitly setting these parameters while compiling something using automoc, while the fedora makes them default for every automoc run (so they don't need to be set explicitly).
Well, they are little different, but they do the same thing. I guess the only difference is that one of these will disable* larger part of the boost code, but I can't tell which one, because unfortunately I don't have the time to check that right now. * to be clear – it disables the boost code just temporarily while the automoc is run. It doesn't affect anything else. Lukas
On 29/03/13 05:08, Lukas Jirkovsky wrote:
On 28 March 2013 19:03, Lukas Jirkovsky <l.jirkovsky@gmail.com> wrote:
I've already implemented this workaround in fatrat[1] and luxrender[2]. The only difference between how I used this workaround and how it's used in fedora is that I'm explicitly setting these parameters while compiling something using automoc, while the fedora makes them default for every automoc run (so they don't need to be set explicitly).
Well, they are little different, but they do the same thing. I guess the only difference is that one of these will disable* larger part of the boost code, but I can't tell which one, because unfortunately I don't have the time to check that right now.
* to be clear – it disables the boost code just temporarily while the automoc is run. It doesn't affect anything else.
I'm in favour of a single fix at the source of the bug (in this case automoc) rather than working around it in multiple packages. Allan
On 28 March 2013 23:24, Allan McRae <allan@archlinux.org> wrote:
I'm in favour of a single fix at the source of the bug (in this case automoc) rather than working around it in multiple packages.
Allan
I agree. Also fixing it in every package is rather annoying. PS: sorry if the email is in HTML, Gmail changed interface to such a crap that I'm not even able to tell if it's plaintext or not.
On Thursday 28 March 2013 14:43:43 Stéphane Gaudreault wrote:
Some packages (e.g. avogadro) using the BOOST_JOIN macro of boost 1.53 fails to build because of a bug in the Qt MOC compiler. Fedora appears to have a workaround [2]. Would it be possible for someone who knows QT to look at this?
First of all I'm sorry for the late reply. That define would apply to everything, so that isn't a "real"/suggested fix. Indeed this should be fixed the way I fixed our avogadro package[1]. These fixes could be also merged upstream. [1] https://projects.archlinux.org/svntogit/packages.git/tree/trunk?h=packages/a... -- Andrea Arch Linux Developer
participants (4)
-
Allan McRae
-
Andrea Scarpino
-
Lukas Jirkovsky
-
Stéphane Gaudreault