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.839704
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

Latest Comments

« First ‹ Previous 1 2 3 4 5 6 7 8 9 10 11 ... Next › Last »

Xavion commented on 2017-03-24 20:31

It takes forever to download the tarball using that link. For some reason, it comes down much faster from Qt's "master" subdomain. Please use the following link in the PKGBUILD instead:
* http://master.qt.io/official_releases/qt/4.8/4.8.7/qt-everywhere-opensource-src-4.8.7.tar.gz

severach commented on 2017-03-22 17:53

The problem is that someone put up qtwebkit which we don't need. What we need is lib32-qtwebkit.

WoefulDerelict commented on 2017-03-22 14:43

severach: WebKit has a plethora of known flaws that can be exploited and are unlikely to be fixed in this deployment. It has traditionally been broken off into a separate package from QT4 in [Extra] so users who need it can install it while allowing everyone else to avoid it. The webkit extensions were disabled in lib32-qt4 long before this was dropped from [Multilib] and found its way to the AUR. qtwebkit has been dropped from [Extra] and now resides in the AUR. Many legacy webkit packages were dropped from the repos during a recent purge. In the rare event a user needs the QT WebKit extensions for 32-bit compatibility this should be solved via a dedicated package.

At present when building lib32-qt4 using the devtools script as I've suggested the lib32-libgl group, as qt4 in [Extra] which I mirror still uses the libgl group, will default to the first and only member of the group which is presently lib32-libglvnd, completing just fine. Changing the dependency array will break compatibility with older deployments so this seems less than prudent. If the distribution decides to drop the libgl group I'll follow; however, until then I'll leave it be to maintain compatibility as it isn't broken and functions exactly as it was intended.

severach commented on 2017-03-22 06:44

Clean chroot works. Because of the AUR dependency standard Arch build tools are too hard to make work. Graysky's clean-chroot-manager makes it easy peasy.
Why was WebKit disabled? WebKit was the only useful part of this package.
Dependency lib32-libgl should be changed to lib32-libglvnd. lib32-libgl is a group. Groups cannot be selected during a clean build.

astronouth7303 commented on 2017-03-22 00:31

Followed the chroot instructions:

==> Validating source files with sha512sums...
qt-everywhere-opensource-src-4.8.7.tar.gz ... Passed
improve-cups-support.patch ... Passed
moc-boost-workaround.patch ... Passed
kubuntu_14_systemtrayicon.diff ... Passed
kde4-settings.patch ... Passed
glib-honor-ExcludeSocketNotifiers-flag.diff ... Passed
disable-sslv3.patch ... Passed
l-qclipboard_fix_recursive.patch ... Passed
l-qclipboard_delay.patch ... Passed
qt4-gcc6.patch ... Passed
qt4-glibc-2.25.patch ... Passed
==> Making package: lib32-qt4 4.8.7-10 (Tue Mar 21 20:29:00 EDT 2017)
==> Checking runtime dependencies...
==> Installing missing dependencies...
sudo: effective uid is not 0, is /usr/bin/sudo on a file system with the 'nosuid' option set or an NFS file system without root privileges?
==> ERROR: 'pacman' failed to install missing dependencies.
==> ERROR: Build failed, check /tmp/chroot/astronouth7303/build

NicolasV commented on 2017-03-20 22:29

I faced the same issue regarding the build of this Skype dependency (yes Skype 4.3 works better and allow audio/video/screen sharing)
I'm an Arch newcomer and on my small test machine (2GB of RAM) the compilation failed each time at the same step.

I notice a massive amount of memory used and then... crash. A simple "du -sh" revealed the cause: /tmp is a 1GB tmpfs filesystem... on a 2GB machine? ridiculous...

I decided to keep the RAM for the software and not for the temporary compilation files... I found this method pretty efficient:

systemctl mask tmp.mount

I restarted my PC and the lib32-qt4 compilation. You know what? No crash yet, still compiling. As I'm writing these lines, the current /tmp folder contains 1.4GB of files, beyond the 1GB limit of the initial tmpfs!

Compiling big applications/libraries simply require sometimes more room (Firefox, QT4, LibreOffice...) That's why 1GB tmpfs is not enough. That's why a compilation inside a "clean chroot" works (because outside /tmp and the default 1GB limit)

WoefulDerelict commented on 2017-03-20 15:55

brandimarte: Glad to hear it didn't give you any problems.

piedro: No, building in a clean chroot is not something that should be included in a PKGBUILD. It is unlikely that the plethora of variables that result in issues with this build will be addressed any time soon. These issues are not universal and many users are able to build this just fine outside of a clean chroot.

If you want to know the difference between QT releases it is best to check the change log upstream. This will provide you with the most detailed account of what has been changed between releases.

If you want to know what has happened between package releases there is a git history detailing the changes made. The majority of releases for QT 4.8.7 in [Extra] and iterations here have been to include patches to fix issues with QT 4.8.7.

brandimarte commented on 2017-03-19 16:40

Hi, just to let you know, the package compiled fine here. I was afraid to upgrade after reading the comments, but the compilation was successful.

Best!

piedro commented on 2017-03-16 14:53

Hello!

Sorry to say but this is the single most inconvenient update package in AUR I've ever dealt with.

What is the difference to 4.8.4? Is there any need for updating anyway?

Will there be a version that does not require all this clean-chroot-shenanigans?
Shouldn't this be included in the PKGBUILD?

thx, p.

Tharbad commented on 2017-03-15 20:04

I'm getting some compilation errors:
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)

I *thought* such things don't suppose to happen anymore...