Ever notice most of the *-icon-theme builds take *forever* to build? Even though they're just copying data, with no compiling happening? The culprit is makepkg's symlink detection and doinst.sh generation.
To anyone who maintains a build that contains thousands of symlinks... please consider doing this to your build. The changes come at the end of the script, just before makepkg is called. Example: cd $PKG find . -type l \ -printf '( cd %h ; rm -rf %f )\n( cd %h ; ln -sf %l %f )\n' -delete | \ sed 's,cd \./,cd ,' >> $PKG/install/doinst.sh /sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz} This produces an install/doinst.sh that's identical[1] to the one makepkg would have generated, but it happens a *lot* faster. If you're using an SSD for /tmp, you can expect the build to run in seconds rather than minutes. Even on a hard drive, expect at least a 2x to 10x speedup. [1] Unless there are spaces in the filenames. To decide whether or not this is worth doing to your build, first build it the usual way. Then: grep -c 'ln -sf' /tmp/SBo/package-<whatever>/install/doinst.sh ...which will show you how many symlinks exist in your package. If the number's above 1000 or so (some are closer to 20,000 or 40,000), it's worth trying this speedup technique. When you do this to your build, you should keep a copy of the old install/doinst.sh from before the modification. Paste the above code (the giant find|sed stanza) into your build, run it (it should be noticeably faster), then diff the old doinst.sh and the newly-generated one. They should be identical. If not, either figure out why & fix it, or revert the change and leave the build alone. In my git branch, I've done this to these builds: Qogir-icon-theme Zafiro-icons arc-icon-theme areao43-icon-theme awoken-icon-theme faba-mono-icons faenza-icon-theme faience-icon-theme flatwoken-icon-theme kfaenza-icon-theme meliae-icon-theme numix-icon-theme numix-icon-theme-circle numix-icon-theme-square oranchelo-icon-theme papirus-icon-theme vivacious-colors-gtk-icon-theme If you're the maintainer of one of these, you may want to double-check that the generated doinst.sh hasn't changed (I checked them myself, but why take my word for it?) Before anyone asks: yes, I'm planning to send Pat a patch for him to consider adding to makepkg. However I've got to deal with the spaces-in-filenames issue first. _______________________________________________ SlackBuilds-users mailing list SlackBuilds-users@slackbuilds.org https://lists.slackbuilds.org/mailman/listinfo/slackbuilds-users Archives - https://lists.slackbuilds.org/pipermail/slackbuilds-users/ FAQ - https://slackbuilds.org/faq/