Package Details: lib32-qt4 4.8.7-14

Git Clone URL: https://aur.archlinux.org/lib32-qt4.git (read-only)
Package Base: lib32-qt4
Description: A cross-platform application and UI framework (32-bit)
Upstream URL: http://www.qt.io
Licenses: custom, GPL3, LGPL, FDL
Conflicts: lib32-qt
Replaces: lib32-qt<=4.8.4
Submitter: arojas
Maintainer: WoefulDerelict
Last Packager: WoefulDerelict
Votes: 51
Popularity: 0.469760
First Submitted: 2017-02-09 20:36
Last Updated: 2018-07-10 17:40

Sources (13)

Pinned Comments

WoefulDerelict commented on 2017-03-07 19:07

This package often requires special care to build. If building this with makepkg fails it will be necessary to construct the package in a clean chroot. Using an AUR helper is not recommended; however, aurutils does provide the option to build in the clean chroot.

The process of building this package in a clean chroot is rendered exceptionally simple with the help of scripts in the devtools package and can be completed via the following steps. These summarize the information provided by the Arch Linux DeveloperWiki and assume familiarity with git or the process of downloading a snapshot from the AUR and extracting the archive. Please refer to this article for more information about the devtools scripts and building in the clean chroot: [https://wiki.archlinux.org/index.php/DeveloperWiki:Building_in_a_Clean_Chroot]

Prerequisites: This process uses scripts in devtools to simplify the procedure: please install this package before beginning. The lib32-libmng package is required and must be built or downloaded from the Arch Linux Archive [https://wiki.archlinux.org/index.php/Arch_Linux_Archive]. QT 4 depends on this package and it is no longer found in the binary repositories.

  1. Clone the lib32-qt4 repository or extract the snapshot archive into a clean working directory.

  2. Enter the directory containing the package source. (PKGBUILD and patches.)

  3. Execute the following command, supplying the location of lib32-libmng: multilib-build -- -I /<somewhere>/lib32-libmng-2.0.3-1-x86_64.pkg.tar.xz

  4. Execute pacman with the -U flag to install the resulting package: just as one would with any other local package. Note: lib32-libmng would need to be installed in a similar fashion if it isn't already present on your system.

WoefulDerelict commented on 2017-02-25 15:52

The QT 4 build system is prone to some odd behaviour: especially if the qtwebkit package is installed. [https://bbs.archlinux.org/viewtopic.php?id=132416] [https://bugreports.qt.io/browse/QTBUG-20236]

If your build fails with the following [error: expected class-name before ‘{’ token] when compiling please build in a clean chroot.

If your build fails with error messages about skipping incompatible files and being unable to find a specific file in a compatible format, especially while linking, you will need to build in a clean container to avoid issues.

Building this package in a clean chroot or other form of container will prevent unexpected issues.

All build errors will be ignored unless the build was performed inside a clean, properly configured container. For more information about building in a clean chroot see this article: [https://wiki.archlinux.org/index.php/DeveloperWiki:Building_in_a_Clean_Chroot]

Big thanks to int [at] arcor [dot] de for doing the legwork to track down the relevant issue reports and sending them my way.

The archlinuxgr repository contains a binary copy of this package courtesy of ranger.

[archlinuxgr] Server = http://archlinuxgr.tiven.org/archlinux/$arch

darkbasic commented on 2017-02-21 16:50

moc openpagesswitcher.h
rcc assistant.qrc
rcc assistant_images.qrc
compiling helpenginewrapper.cpp
compiling .moc/release-shared/moc_fontpanel.cpp
compiling .moc/release-shared/moc_aboutdialog.cpp
helpviewer_qwv.cpp:161:1: error: expected class-name before ‘{’ token
{
^
helpviewer_qwv.cpp:166:13: error: ‘QWebPage’ does not name a type
virtual QWebPage *createWindow(QWebPage::WebWindowType);
^~~~~~~~
helpviewer_qwv.cpp:167:32: error: ‘WebAction’ has not been declared
virtual void triggerAction(WebAction action, bool checked = false);
^~~~~~~~~
helpviewer_qwv.cpp:169:42: error: ‘QWebFrame’ has not been declared
virtual bool acceptNavigationRequest(QWebFrame *frame,
^~~~~~~~~
helpviewer_qwv.cpp:170:41: error: ‘NavigationType’ has not been declared
const QNetworkRequest &request, NavigationType type);
^~~~~~~~~~~~~~
helpviewer_qwv.cpp: In constructor ‘HelpPage::HelpPage(QObject*)’:
helpviewer_qwv.cpp:182:7: error: class ‘HelpPage’ does not have any field named ‘QWebPage’
: QWebPage(parent)
^~~~~~~~
helpviewer_qwv.cpp: At global scope:
helpviewer_qwv.cpp:190:1: error: ‘QWebPage’ does not name a type
QWebPage *HelpPage::createWindow(QWebPage::WebWindowType)
^~~~~~~~
helpviewer_qwv.cpp:200:30: error: variable or field ‘triggerAction’ declared void
void HelpPage::triggerAction(WebAction action, bool checked)
^~~~~~~~~
helpviewer_qwv.cpp:200:30: error: ‘WebAction’ was not declared in this scope
helpviewer_qwv.cpp:200:48: error: expected primary-expression before ‘bool’
void HelpPage::triggerAction(WebAction action, bool checked)
^~~~
make[4]: *** [Makefile:14146: .obj/release-shared/helpviewer_qwv.o] Error 1
make[4]: *** Attesa per i processi non terminati....
make[4]: uscita dalla directory "/home/niko/.cache/pacaur/lib32-qt4/src/qt-everywhere-opensource-src-4.8.7/tools/assistant/tools/assistant"
make[3]: *** [Makefile:42: sub-assistant-make_default-ordered] Error 2
make[3]: uscita dalla directory "/home/niko/.cache/pacaur/lib32-qt4/src/qt-everywhere-opensource-src-4.8.7/tools/assistant/tools"
make[2]: *** [Makefile:113: sub-tools-make_default-ordered] Error 2
make[2]: uscita dalla directory "/home/niko/.cache/pacaur/lib32-qt4/src/qt-everywhere-opensource-src-4.8.7/tools/assistant"
make[1]: *** [Makefile:52: sub-assistant-make_default-ordered] Error 2
make[1]: uscita dalla directory "/home/niko/.cache/pacaur/lib32-qt4/src/qt-everywhere-opensource-src-4.8.7/tools"
make: *** [Makefile:891: sub-tools-make_default-ordered] Error 2
==> ERRORE: Si è verificato un errore in build().
L'operazione sta per essere interrotta...
:: failed to build lib32-qt4 package(s)

WoefulDerelict commented on 2017-02-21 16:24

One is still quite unable to reproduce this and I now fail to recall the number of time I've downloaded, verified and built this in various conditions attempting to do so. After calling in some support from the #ArchLinux community on FreeNode and having little luck reproducing the error the most logical cause remains some form of race condition in the qt4 build system. The only other likely candidate is an unexpected interaction with something on the local system. The former is not only hard to diagnose it is extremely difficult to locate and mend. As this is legacy software getting assistance from upstream is bound to be slow. The latter condition is easier to eliminate.

When building and testing packages please remember the following. 1) AUR helpers are not supported as they frequently interact with builds causing unpredictable errors. Please download and extract the snapshot archive into a clean working directory or clone this repository via git before using makepkg to build it. 2) Do not build in /tmp. /tmp is tmpfs and can run out of space with large builds or updates causing unexpected breakage. 3) Build packages in a clean chroot to avoid conflicts with other installed software. (https://wiki.archlinux.org/index.php/DeveloperWiki:Building_in_a_Clean_Chroot)

meepzh: I'm glad you were able to successfully build this. Thanks for stopping by to provide your feedback.

plebian: Thanks for the information. Did you use pacaur for the whole process? Your build is having a sad at a different location than the majority of failures reported here.

ZeroBit: Thanks for the input. Makes things almost seem predictable till someone pops back with a different failure.

Tomek80Bytom: This is not a package, it is a collection of resources to build a package. QT4 is a sizeable library and takes quite a while to build. You could have saved yourself the trouble of rebuilding by reading the comments here as the issue you're experiencing has already been reported and is under investigation.

meepzh commented on 2017-02-21 15:18

I was having issues earlier. Then I cleared the pacaur cache at ~/.cache/pacaur/lib32-qt4 and it built successfully.

CPU Info and Build Log: https://gist.github.com/meepzh/632a7661f55599d6d0089c979b0c4aa5

I'm running stock 4.9.9-1-ARCH x86_64 on Intel i7 4800MQ with 16GB RAM.

Best of luck resolving the issue!

Tomek80Bytom commented on 2017-02-21 11:20

This package is really very terrible. One hour of compilation and I have got error. :-( I tried three times.

openpagesswitcher.cpp: In member function ‘virtual bool OpenPagesSwitcher::eventFilter(QObject*, QEvent*)’:
openpagesswitcher.cpp:157:61: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
else if (key == Qt::Key_Tab && (ke->modifiers() == modifier))
~~~~~~~~~~~~~~~~^~~~~~~~~~~
compiling helpviewer_qwv.cpp
helpviewer_qwv.cpp:161:1: error: expected class-name before ‘{’ token
{
^
helpviewer_qwv.cpp:166:13: error: ‘QWebPage’ does not name a type
virtual QWebPage *createWindow(QWebPage::WebWindowType);
^~~~~~~~
helpviewer_qwv.cpp:167:32: error: ‘WebAction’ has not been declared
virtual void triggerAction(WebAction action, bool checked = false);
^~~~~~~~~
helpviewer_qwv.cpp:169:42: error: ‘QWebFrame’ has not been declared
virtual bool acceptNavigationRequest(QWebFrame *frame,
^~~~~~~~~
helpviewer_qwv.cpp:170:41: error: ‘NavigationType’ has not been declared
const QNetworkRequest &request, NavigationType type);
^~~~~~~~~~~~~~
helpviewer_qwv.cpp: In constructor ‘HelpPage::HelpPage(QObject*)’:
helpviewer_qwv.cpp:182:7: error: class ‘HelpPage’ does not have any field named ‘QWebPage’
: QWebPage(parent)
^~~~~~~~
helpviewer_qwv.cpp: At global scope:
helpviewer_qwv.cpp:190:1: error: ‘QWebPage’ does not name a type
QWebPage *HelpPage::createWindow(QWebPage::WebWindowType)
^~~~~~~~
helpviewer_qwv.cpp:200:30: error: variable or field ‘triggerAction’ declared void
void HelpPage::triggerAction(WebAction action, bool checked)
^~~~~~~~~
helpviewer_qwv.cpp:200:30: error: ‘WebAction’ was not declared in this scope
helpviewer_qwv.cpp:200:48: error: expected primary-expression before ‘bool’
void HelpPage::triggerAction(WebAction action, bool checked)

ZeroBit commented on 2017-02-21 09:51

I have the same problem on 2 computers:

helpviewer_qwv.cpp:161:1: error: expected class-name before ‘{’ token
{
^
helpviewer_qwv.cpp:166:13: error: ‘QWebPage’ does not name a type
virtual QWebPage *createWindow(QWebPage::WebWindowType);
^~~~~~~~
helpviewer_qwv.cpp:167:32: error: ‘WebAction’ has not been declared
virtual void triggerAction(WebAction action, bool checked = false);
^~~~~~~~~
helpviewer_qwv.cpp:169:42: error: ‘QWebFrame’ has not been declared
virtual bool acceptNavigationRequest(QWebFrame *frame,
^~~~~~~~~
helpviewer_qwv.cpp:170:41: error: ‘NavigationType’ has not been declared
const QNetworkRequest &request, NavigationType type);
^~~~~~~~~~~~~~
helpviewer_qwv.cpp: In constructor ‘HelpPage::HelpPage(QObject*)’:
helpviewer_qwv.cpp:182:7: error: class ‘HelpPage’ does not have any field named ‘QWebPage’
: QWebPage(parent)
^~~~~~~~
helpviewer_qwv.cpp: At global scope:
helpviewer_qwv.cpp:190:1: error: ‘QWebPage’ does not name a type
QWebPage *HelpPage::createWindow(QWebPage::WebWindowType)
^~~~~~~~
helpviewer_qwv.cpp:200:30: error: variable or field ‘triggerAction’ declared void
void HelpPage::triggerAction(WebAction action, bool checked)
^~~~~~~~~
helpviewer_qwv.cpp:200:30: error: ‘WebAction’ was not declared in this scope
helpviewer_qwv.cpp:200:48: error: expected primary-expression before ‘bool’
void HelpPage::triggerAction(WebAction action, bool checked)
^~~~

make[4]: *** [Makefile:14146: .obj/release-shared/helpviewer_qwv.o] Error 1
make[4]: Leaving directory '/tmp/yaourt-tmp-user/aur-lib32-qt4/src/qt-everywhere-opensource-src-4.8.7/tools/assistant/tools/assistant'
make[3]: *** [Makefile:42: sub-assistant-make_default-ordered] Error 2
make[3]: Leaving directory '/tmp/yaourt-tmp-user/aur-lib32-qt4/src/qt-everywhere-opensource-src-4.8.7/tools/assistant/tools'
make[2]: *** [Makefile:113: sub-tools-make_default-ordered] Error 2
make[2]: Leaving directory '/tmp/yaourt-tmp-user/aur-lib32-qt4/src/qt-everywhere-opensource-src-4.8.7/tools/assistant'
make[1]: *** [Makefile:52: sub-assistant-make_default-ordered] Error 2
make[1]: Leaving directory '/tmp/yaourt-tmp-user/aur-lib32-qt4/src/qt-everywhere-opensource-src-4.8.7/tools'
make: *** [Makefile:891: sub-tools-make_default-ordered] Error 2
==> ERROR: A failure occurred in build().
Aborting...
==> ERROR: Makepkg was unable to build lib32-qt4.
==> Restart building lib32-qt4 ? [y/N]

plebian commented on 2017-02-21 09:36

@WoefulDerelict

Makelog: https://gist.github.com/MartijnDevNull/0fca281f31efa88cc77925cf266c8103
CPU: https://gist.github.com/MartijnDevNull/bbdfcbbb549f31938f3474e9e41ffe13

Install: Antergos x86_64 Linux 4.9.9-1-ARCH

Everything else is stock and up to date

WoefulDerelict commented on 2017-02-21 00:46

vita_cell: Could you try building this with makepkg outside of tmpfs instead of with yaourt? You'll forgive me; however, I'm not fluent in Spanish and terminal output is very difficult to translate and parse. Not sure why that is happening but I can't reproduce it. My only guess it something funny in your system's i/o and yaourt + tmpfs

WoefulDerelict commented on 2017-02-21 00:30

If your build fails with the following [error: expected class-name before ‘{’ token] when compiling helpviewer_qwv.cpp at 161:1 please revert back to basic package building procedure: Do NOT use an AUR helper. Use makepkg under a clean chroot. The wiki [https://wiki.archlinux.org/index.php/DeveloperWiki:Building_in_a_Clean_Chroot https://wiki.archlinux.org/index.php/Arch_User_Repository] as well as the community are available for support if you are unfamiliar with the process. I can be found in the #ArchLinux and #ArchLinux-AUR channels along with many other helpful community members on FreeNode [https://wiki.archlinux.org/index.php/IRC_channel].

If you aren't able to build this and need a functioning copy you can find old binary releases of lib32-qt4 and many other packages in the Arch Linux Archive: https://archive.archlinux.org/packages/l/lib32-qt4/

Thanks to all the users who have submitted output from their builds and a special thanks to mattlyons for smashing through the test suite with a Skylake and submitting the results to me via e-mail. I'm still sifting through the data to see if I can't locate the exact cause; however, I've narrowed it down to two more distinct avenues. The first is that some package is disrupting the build by altering the behaviour of the tools resulting in garbled output: likely at some macro expansion. The second is that there is a race condition somewhere in the QT 4.8.7 build system leading to improperly generated output.

Should this turn out to be a race condition in the QT 4.8.7 build system it may take some time to resolve. I'll be hoping to include the QT Project in the hunt for heisenbergs; however, this is legacy Trolltech/Nokia/Digia stuff so I'm not sure how much help they will be.

I’m presently conducting tests under a /new/ Arch Linux base installation on an Intel Haswell i7 from the latest ISO. It is currently suspected that the build errors many users are experiencing result from some race condition in the QT4 build system. One has spotted discussion of a similar issue on an entirely different distribution that supports this suspicion here: http://blfs-dev.linuxfromscratch.narkive.com/d2pzKCq9/kde4 Unfortunately these are exceptionally difficult to reproduce and diagnose.

If users could provide me with additional information when reporting issues it would greatly help me address the issue you’re experiencing. Specifically your CPU (please include the manufacturer and model), the amount of RAM, media type (SSD/HDD) and some details about your installation. I’ll need to know if you’re running Arch Linux proper or a spin, if you’ve made any changes to makepkg.conf, when your last sync was, which package is providing lib32-libgl, the specific command you used to initiate the build and if it was run in a clean chroot. If you can provide me with the entire output of the build process it is much more helpful than a vague snippit out of context: those often tell me nothing. I’ve only ever seen the processor generation noticeably impact specific build tests of cryptographic libraries but I’d like to eliminate the variable so please include more than just the manufacturer and class, id est: Intel i7-880, Intel i7-4790, Intel i7-Nehalem, Intel i5-Skylake or AMD FX-9590 vs Intel i7. It is also helpful to know if the firmware and processor microcode are up to date and/or if the processor microcode is being updated by the system at boot. In the unlikely event I/O latency is having some bearing on the output it would help me to know if the build (source and output) were hosted in RAM, on an SSD or a HDD employing spindle and VCA.

vita_cell commented on 2017-02-21 00:14

Error :(

http://dpaste.com/15BT2K6

WoefulDerelict commented on 2017-02-21 00:10

n0bs: I definitely need more output to debug that. lib32-dbus is a dependency and should already be on your system for makepkg to even proceed to build(). Not really sure why it isn't finding it on your system and it is bailing out.