[arch-general] Howto setup i686 archroot on x86_64 box? (not linux32 chroot)
All, I have built all x86_64 packages in an archroot on my x86_64 box. I would like to set up and i686 archroot on the same box to build the i686 packages on the same box due to build times dropping from about 8 hours on i686 to less than 3 on the x86_64 box. I am unclear how best to do it -- or if it is doable. I've read https://wiki.archlinux.org/index.php/Arch64_FAQ about multilib with ~/.makepkg.i686.conf and a true linux32 chroot setup, but none of those are specific to the archroot setup. Both seem like they would work, but don't know if they are the right choice for build the 110 packages TDE requires. I would like to do this in an archroot if possible. I use the "Classic Way" of handling the build specified in https://wiki.archlinux.org/index.php/DeveloperWiki:Building_in_a_Clean_Chroo.... All dependency packages are installed in the rw layer of the chroot with the first package built, a [local] repo is created under $CHROOT/root/repo, and as packages are built, they are installed, the resulting package is copied to $CHROOT/root/repo, and the repo index is updated with repo-add, and the process repeats with the next package until the build of TDE is complete. (that chroot is usually used to finish and tweaks needed for that set of package, then deleted and a new archroot created for the next major set of updates) It seems like setting up another archroot, and installing multilib would allow an archroot to work, but how would you tell makechrootpkg to build the i686 version instead of the x86_64 version. I don't want to have to modify the PKGBUILDs or do a significant re-write of the build script that automates the build, but if it is as simple as changing the makechrootpkg call, that would be a simple config-file fix. How best to handle this? (or just use the old i686 box and run it overnight?) -- David C. Rankin, J.D.,P.E.
On 01/25/2014 12:25 AM, David C. Rankin wrote:
All,
I have built all x86_64 packages in an archroot on my x86_64 box. I would like to set up and i686 archroot on the same box to build the i686 packages on the same box due to build times dropping from about 8 hours on i686 to less than 3 on the x86_64 box. I am unclear how best to do it -- or if it is doable.
I've read https://wiki.archlinux.org/index.php/Arch64_FAQ about multilib with ~/.makepkg.i686.conf and a true linux32 chroot setup, but none of those are specific to the archroot setup. Both seem like they would work, but don't know if they are the right choice for build the 110 packages TDE requires. I would like to do this in an archroot if possible.
I use the "Classic Way" of handling the build specified in https://wiki.archlinux.org/index.php/DeveloperWiki:Building_in_a_Clean_Chroo.... All dependency packages are installed in the rw layer of the chroot with the first package built, a [local] repo is created under $CHROOT/root/repo, and as packages are built, they are installed, the resulting package is copied to $CHROOT/root/repo, and the repo index is updated with repo-add, and the process repeats with the next package until the build of TDE is complete. (that chroot is usually used to finish and tweaks needed for that set of package, then deleted and a new archroot created for the next major set of updates)
It seems like setting up another archroot, and installing multilib would allow an archroot to work, but how would you tell makechrootpkg to build the i686 version instead of the x86_64 version. I don't want to have to modify the PKGBUILDs or do a significant re-write of the build script that automates the build, but if it is as simple as changing the makechrootpkg call, that would be a simple config-file fix.
How best to handle this? (or just use the old i686 box and run it overnight?)
I've found: https://wiki.archlinux.org/index.php/Building_32-bit_packages_on_a_64-bit_sy.... I'll setup another chroot configured as suggested and build as usual in the i686 chroot. If there are any additional pointers of gotchas, please let me know. Thanks. -- David C. Rankin, J.D.,P.E.
Am 25.01.2014 07:25, schrieb David C. Rankin:
I use the "Classic Way" of handling the build specified in https://wiki.archlinux.org/index.php/DeveloperWiki:Building_in_a_Clean_Chroo....
If you use devtools anyway (which you definitely should when building a packages for more than one computer), simply run 'sudo extra-x86_64-build && sudo extra-i686-build' in the PKGBUILD directory. There's not much more to do.
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 01/25/2014 01:43 AM, Thomas Bächler wrote:
Am 25.01.2014 07:25, schrieb David C. Rankin:
I use the "Classic Way" of handling the build specified in https://wiki.archlinux.org/index.php/DeveloperWiki:Building_in_a_Clean_Chroo....
If you use devtools anyway (which you definitely should when building a packages for more than one computer), simply run 'sudo extra-x86_64-build && sudo extra-i686-build' in the PKGBUILD directory. There's not much more to do.
Thanks Thomas. So if I understand you, I can simple create another archroot, and then, create a [local] repo as usual, then call sudo extra-i686-build to create the i686 package, install it in the rw layer of the chroot, copy the package to $CHROOT/root/repo, run repo-add to update the index, and then build the next file in the build order with extra-i686-build and repeat? I thought the extra-i686-build tools were from smaller packages. TDE has over 100 packages where 1 provides dependencies for 2, that provides them for 3, and so on... The article says to disable multilibs, to change the 'arch' in makepkg.conf and mirrorlist, etc. (I presume so that when the 1st file is built the needed i686 libs are pulled in as dependencies, and so on. I'll give it a go. I'd much rather a 3 hour build than and 8-10 hour build. Thanks! - -- David C. Rankin, J.D.,P.E. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.16 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iEYEARECAAYFAlLjjoEACgkQZMpuZ8Cyrcg5qQCfbVZAunv4XPcfv5pLGgT8gUNl PDcAnA8oFhkr5MuqNcC8Wddck5Wm6y9u =/TZz -----END PGP SIGNATURE-----
On 01/25/2014 04:14 AM, David C. Rankin wrote:
I'll give it a go. I'd much rather a 3 hour build than and 8-10 hour build.
Modified $auto to i686 and installed with: sudo mkarchroot -C /dat_e/tde/cnf/pacman-i686.conf -M /dat_e/tde/cnf/makepkg-i686.conf $ch86/root base base-devel sudo gdb updated the pacman.d/mirrorlist the same way and it WORKS! Thanks tb! -- David C. Rankin, J.D.,P.E.
participants (2)
-
David C. Rankin
-
Thomas Bächler