Lately, the repository has been taking +10 hours to compile all the packages. I think that’s a lot for a little more than 250 packages, most of them small utilities and/or _-bin_ files from AUR, built in a DEV1-L (4 cores, 8 Gb RAM) virtual machine from Scaleway.

After investigating the matter, I found out that 12 of the packages took four hours and sixteen minutes to build.

Pkg Hours Minutes
./pueue/makepkg.log 0 12
./ffsend/makepkg.log 0 15
./joplin/makepkg.log 0 15
./bandwhich/makepkg.log 0 16
./session-desktop/makepkg.log 0 17
./mindforger/makepkg.log 0 17
./giada-git/makepkg.log 0 17
./brackets/makepkg.log 0 21
./newbreeze-git/makepkg.log 0 24
./falkon-git/makepkg.log 0 24
./newsflash-git/makepkg.log 0 31
./firefox-kde-opensuse/makepkg.log 0 47

I decided to give it a go at reducing the packages build time. The first set of changes I made were:

  • remove newsflash-git;
  • remove newbreeze-git;
  • remove giada-git;
  • replace firefox-kde-opensuse with firefox-kde-opensuse-rpm;
  • session-desktop with session-desktop-bin.

.ugb-8f198eb .ugb-cta__item{background-color:#fff3ef !important}.ugb-8f198eb .ugb-cta__item:before{background-color:#fff3ef !important}.ugb-8f198eb .ugb-cta__title{color:#e36d60}

If you used any of the packages I removed, please let me know and I’ll add it again

Next, I inserted the _MAKEFLAGS="-j4"_ environment variable in the _config_ file, so that compilers use the four cores when possible.

Pkg Hours Minutes
./brackets/makepkg.log 0 20
./bamr/makepkg.log 0 19
./falkon-git/makepkg.log 0 19
./joplin/makepkg.log 0 15
./ffsend/makepkg.log 0 15
./mindforger/makepkg.log 0 13
./pueue/makepkg.log 0 12
./broot/makepkg.log 0 7
./navi/makepkg.log 0 7
./boostnote-bin/makepkg.log 0 7
./qownnotes/makepkg.log 0 7
./kitematic-git/makepkg.log 0 6

With the above changes, the twelve “worst offenders” decrease to almost two and an half hours. The total build time is likely to decrease a little more after I take a look at what packages _[userrepository]( shares with _[chaotic-aur]( and decide which, if any, I should remove.

In the TODO list are also some tests to be made to the zstd compression level. The current level is 10, with the default being 3. I intend to see if the trade-off between the increase in package creation time and the reduction in package size is worth increasing the level to somewhere between 15 and 19, the highest preset level.

Eventually, I’ll begin to sign the packages. For now, enjoy the latest batch and become a patron.