Date: Tue, 13 Jan 2015 09:39:12 +0100 From: Baptiste Daroussin <bapt@FreeBSD.org> To: Stefan Ehmann <shoesoft@gmx.net> Cc: freebsd-ports@freebsd.org Subject: Re: poudriere: reduce the number of rebuilt packages? Message-ID: <20150113083911.GG17273@ivaldir.etoilebsd.net> In-Reply-To: <54A67B1A.5060007@gmx.net> References: <54A67B1A.5060007@gmx.net>
next in thread | previous in thread | raw e-mail | index | archive | help
--ulDeV4rPMk/y39in Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Fri, Jan 02, 2015 at 12:03:54PM +0100, Stefan Ehmann wrote: > I've recently switched from portmaster to poudriere/'pkg upgrade' to=20 > manage my port updates. Basically it works fine, but incremental builds= =20 > don't quite work as I expected. >=20 > poudriere rebuilds all packages if any dependency has changed. If there= =20 > are only some ports with new versions, possibly hundreds of packages are= =20 > rebuilt. So far it looks like I'll end up rebuilding packages like=20 > libreoffice/KDE/chromium several times a week. The rebuilt packages=20 > won't even be installed by 'pkg upgrade' because their version number=20 > has not changed. >=20 > That's a huge waste of resources. With portmaster only ports with=20 > increased version numbers are rebuilt. >=20 > Can I use poudriere to rebuild only packages where the version number=20 > changed? >=20 The problem here in consistency while in theory we can cherry-pick what we really want to rebuild based on libraries provided/required in binary packa= ges poudriere has to deal with the ports tree and compatibility. The ports tree was a heavy user of pkg_add which became pkg add, this tool = was relying on the version of dependencies as registered in the package creatio= n: - A-v1 was depending on B-v2 if B-v2 is bumped to B-v3 then A-v1 dependency chain is broken in regard pkg_add. Just for that we have no choices but rebuilding everything that depends on B This can now be "easily" fixed because pkg_install is gone and we do not ha= ve to rely on compatiblity with it anymore, the problem is people willing to work= on that (flexible dependencies and smart dependencies) have been mostly killed= by the nightmare this compatibility has introduced into pkg. Lots of scripts still rely on the pkg_add behaviour and until all of them a= re killed I'm afraid we won't be able to prevent those massive rebuilds. That is if you are doing the things correctly. Now there is an alternative. Introduce a new repository format for file:// kind of url (like Zypper) whi= ch will not need all the metadata and be blazing fast to produce. Use pkg inst= all instead of pkg add in ports and then we can reduce the massive rebuilds to = only rebuild things that really requires a library and only a library being removed/upgraded. Any volunteers? regards, Bapt --ulDeV4rPMk/y39in Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iEYEABECAAYFAlS02a0ACgkQ8kTtMUmk6EyU5QCfR9JlnMtjZe/kOOVhUh/2SPWL /tsAn1QmvtBmwHwEHfguO11/KG7g+hTF =Hjbk -----END PGP SIGNATURE----- --ulDeV4rPMk/y39in--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20150113083911.GG17273>