Package Details: lib32-qt4 4.8.7-15

Git Clone URL: https://aur.archlinux.org/lib32-qt4.git (read-only, click to copy)
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
Submitter: arojas
Maintainer: None
Last Packager: WoefulDerelict
Votes: 51
Popularity: 0.000000
First Submitted: 2017-02-09 20:36 (UTC)
Last Updated: 2019-11-19 22:10 (UTC)

Pinned Comments

WoefulDerelict commented on 2017-03-07 19:07 (UTC) (edited on 2018-08-26 01:22 (UTC) by WoefulDerelict)

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 (UTC) (edited on 2018-08-26 00:47 (UTC) by WoefulDerelict)

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 .. 9 10 11 12 13 14 15 16 17 18 19 .. 25 Next › Last »

PhotonX commented on 2017-03-04 19:23 (UTC)

Well, in my opinion, if a package works, then is updated to a higher revision the software version staying unchanged and breaks something, the problem is clearly packaging related. :) Started the tests with GCC. GCC test has been passed. Now doing Reconfigure.

WoefulDerelict commented on 2017-03-04 19:16 (UTC)

PhotonX: I've dropped another test into the repo should you manage to make it through the previous three without reproducing the issue. mBase: This test includes the minimal number of patches necessary to build along with the statement tuning used in the rebase. This should point out if there is some mistake in the sed sorcery or if the issue stems from the additional patches from [Extra]

WoefulDerelict commented on 2017-03-04 18:10 (UTC)

PhotonX: My old Nehalelm i7-870 has finished derping through the build. It all looks good and I've updated the tests on GitHub. Feel free to give em a whack. I'll usually tackle an issue if it is actually packaging related. There are plenty of times it isn't something that can be accounted for by the PKGBUILD and there isn't much one can do. In this case I suspect it may have more to do with the additional patch sets from [Extra] than it does with the actual PKGBUILD but I did choose to include them during the rebase instead of just sticking to the essential three.

PhotonX commented on 2017-03-04 17:15 (UTC)

No worries and thanks again for your support!

WoefulDerelict commented on 2017-03-04 17:11 (UTC)

PhotonX: Short answer, it was late, I was sleepy and I didn't properly clean up things in the package function. Testing the fix now with my coffee and I'll be uploading it soon. Apologies. Please give it another go after the fix has been uploaded.

PhotonX commented on 2017-03-04 10:50 (UTC)

Actually, even the Origin test has file conflicts. What is wrong here?

PhotonX commented on 2017-03-04 08:43 (UTC) (edited on 2017-03-04 09:09 (UTC) by PhotonX)

Thanks! First result: Building the Reconfigure and GCC tests results in file conflicts (files in /usr/lib/qt4/bin/ and /usr/include/qt4/, being owned by the non-lib32 qt4 package). Building the next test now.

WoefulDerelict commented on 2017-03-04 03:13 (UTC)

PhotonX: I've isolated the most notable changes into a set of tests here: https://github.com/WoefulDerelict/PKGBUILDs/tree/master/tests Origin: This test is based on the original resources from [Multilib] that were dropped to the AUR. It includes [FS#47301 [https://bugs.archlinux.org/task/47301]] and the removal of bash expansion from the dependency arrays. As you state https://aur.archlinux.org/cgit/aur.git/tree/?h=lib32-qt4&id=77e07c49a2e24c4d64fa1b25fb54c123a7367136 'works fine' this version should also and provide a stable point to iterate from to find the offending change. Reconfigure: The configure options in this test are the ones used in the final release one published in the AUR. If this test fails it is likely the configure options borrowed from [Extra] are to blame and can be reverted to remedy the issue. GCC: This test removes the environment variables explicitly specifying clang as the complier from 'Reconfigure' which should revert it back to using GCC. An additional flag is passed to the compiler so GCC 6 will build qt4. This test is unlikely to result in failure. If the problem isn't introduced by this build then it likely stems from one of the patches used in [Extra] to fix issues with QT 4. This can likely be narrowed down and corrected if it is the case.

WoefulDerelict commented on 2017-03-03 21:39 (UTC) (edited on 2017-03-04 00:51 (UTC) by WoefulDerelict)

PhotonX: Were tsmuxer and skype statically linked you wouldn't be seeing issues with them as they would include the all library routines used by the program in the executable image. It is because these applications are dynamically linked and dependant on the libraries installed on the system that you're experiencing the current issue. Were the applications statically linked the issue wouldn't present its self until you rebuilt the application against the new library and it added the new routines to the executable image. journalctl and dmesg both log output from userspace applications in a default Arch Linux deployment. Unless you have customized your system's settings messages issued by userspace applications should be logged in the journal and dmesg. There were only a handful of major changes to the PKGBUILD that would have an effect on the output, possibly resulting in your current issues. Git has of course tracked all the changes made and they are fairly simple and straightforward. First, the dependency arrays were originally completed using bash expansion. This was removed and the arrays populated with a complete listing of the dependencies to expand compatibility with AUR helpers. Second, the location of some files were changed to address [FS#47301 [https://bugs.archlinux.org/task/47301]]. Next one synchronized the arguments passed to configure so they matched those in the PKGBUILD from [Extra], changing --reduce-relocations to no-reduce-relocations and modifying -sysconfdir to point to /etc/xdg instead of /etc. The headers included in the package were removed as these aren't commonly included in lib32- packages. After this the build was migrated from clang to gcc. Finally, the package resources were rebased on those used in [Extra] which used a different set of patches than the lib32- package from [Multilib]. As you can see in the highlighted changes the major payload that accompanied the rebase you linked were a different set of patches essentially rendering this a 32-bit mirror of resources from [Extra]. Focusing on the two revisions you've drawn attention to the earlier submission was made by lisu_ml in an attempt to address the first two issues raised with this PKBUILD. It successfully removes the bash expansion and attempts to implement [FS#47301 [https://bugs.archlinux.org/task/47301]]. The later revision is where I rebased the package. The notable differences would be the change from clang to gcc and the modified patch set and configure options. As one found there were already users stumbling across the conflict ultimately caused by building this in a dirty environment with qtwebkit it seemed prudent not to update the pkgrel until all the issues were resolved. It is unlikely this change was caused by swapping the compiler; however, it may be worth testing this point as it required a patch that wasn't in the binary release or lisu_ml's update. The configure options are probably one place to look and the patch sets another. The key patches appear in the later commit and are entirely green if you want to review the code: improve-cups-support.patch, moc-boost-workaround.patch, kde4-settings.patch, glib-honor-ExcludeSocketNotifiers-flag.diff, l-qclipboard_fix_recursive.patch, l-qclipboard_delay.patch

PhotonX commented on 2017-03-03 16:31 (UTC) (edited on 2017-03-03 16:32 (UTC) by PhotonX)

So the revision I linked previously works fine. Seems like this later commit, which is basically a complete overwrite, introduces the problem: https://aur.archlinux.org/cgit/aur.git/commit/?h=lib32-qt4&id=bef4f7fb2f5bbbeb5da6959c5757cd108db51996 It says, this revision is based on the package from extra/ but the package from extra/ actually worked fine, as far as I understand. What exactly changed between the old package from extra/ and the current package in the AUR and archlinuxgr/?