On Tue, Oct 27, 2015 at 10:05:49PM -0700, [email protected] wrote: > > Howdy! > > I have a suggestion: to significantly speedup the packaging phase > when installing ports, pass '-f tgz' flag to `pkg create`: > --- Mk/bsd.commands.mk (revision 400371) > +++ Mk/bsd.commands.mk (working copy) > @@ -126,7 +126,7 @@ > PKG_DELETE?= ${PKG_BIN} delete -y > PKG_INFO?= ${PKG_BIN} info -g > PKG_VERSION?= ${PKG_BIN} version > -PKG_CREATE?= ${PKG_BIN} create > +PKG_CREATE?= ${PKG_BIN} create -f tgz > PKG_ADD?= ${PKG_BIN} add > PKG_QUERY?= ${PKG_BIN} query > > This way, gzip will be used instead of default xz (which > is very slow). The extra compression of xz is not needed, > as the package file will be deleted shortly anyway. > > Same idea applies to portmaster. Change > pkg_create="pkg create " > to > pkg_create="pkg create -f tgz " > on line 1916 of 'portmaster' script. > > Ports install a lot faster this way, even on a machine with a fast CPU > (especially noticeable when doing portupgrade with lots of small ports). > > Example. [root@soralx /usr/ports/science/paraview]# time make package > With xz: > ===> Building package for paraview-4.3.1_1 > real 1m41.120s > user 1m40.070s > sys 0m1.089s > With gzip: > ===> Building package for paraview-4.3.1_1 > real 0m15.931s > user 0m15.010s > sys 0m0.925s > Note that `make package` will still produce xz-compressed file after > the flag is added to "PKG_CREATE"; I changed the behaviour only for > this example, to demonstrate the time difference (factor of ~6.7). >
When installing a port there is no packaging phase. pkg register which is used during make install uses the stage directory "as an archive" directly so there is no compression at all. portupgrade/portmaster is another storry, IIRC portmaster only creates packages as backup of the installed version just in case the new package will fail it can reinstall the old one in that case, yes a tgz would be way faster, you can even chose plain tar to even more reduce the over head. for portupgrade I do not remember what it does. Note that the backup thing of portmaster could now possibly be removed since the ports tree support staging because now the ports tree checks that everything is ok before installing on the system, but that would require even more refactoring. Bapt
signature.asc
Description: PGP signature
