Date: Mon, 10 Sep 2018 14:10:15 +0200 From: Stefan Esser <se@freebsd.org> To: Matthias Fechner <idefix@fechner.net>, freebsd-ports@freebsd.org Subject: Re: RUN_DEPENDS and portmaster Message-ID: <7ccc8168-fa3b-9872-dc5a-13a9b394d5c2@freebsd.org> In-Reply-To: <03c14234-538d-fd9f-0c33-22825f3ea91d@fechner.net> References: <03c14234-538d-fd9f-0c33-22825f3ea91d@fechner.net>
next in thread | previous in thread | raw e-mail | index | archive | help
Am 10.09.18 um 06:54 schrieb Matthias Fechner: > Dear all, > > I have a questions reagarding the RUN_DEPENDS and at which step > dependencies should be installed. > I'm the maintainer of gitlab-ce port and I added a feature that checks > in the install target: > do-install: > (cd ${WRKSRC} && ${RM} Gemfile.lock && bundle install --local) > ${FIND} ${WRKSRC} -name '*.orig' -delete > ... > > that all gems available in the system do match the version required by > the Gemfile. > Poudriere works fine with this, but portmaster fails. > Regarding the documentation RUN_DEPENDS packages should be installed > before the install is happening. Hi Matthias, this is the description of the sequence of actions performed by the ports framework alone. INSTALLS_DEPENDS covers the case of dependencies that are required to be available when a port is being installed. Portmaster installs RUN_DEPENDS only after the port that depends on them, since it is assumed, that they are actually only required to execute it after it has been completely installed. The reason is, that portmaster is typically used to upgrade multiple ports in such a way, that all BUILD_DEPENDS are up to date (not only available) when some some dependent port is compiled. In case that some upgraded port actually is a build dependency of some other port, it will need to have its run dependencies installed and upgraded, and portmaster will assure this is the case. The sequence of upgrade actions was chosen to follow this scheme to prevent dependency loops (which typically will consist of a mix of build and run dependencies). > Is this install related to the do-install target or the installation > of the package itself? I have re-implemented portmaster and have been using my version to maintain my ports since May. Due to several bad design decisions (or rather the lack of thorough design) of the FLAVOR feature, it took me quite some effort and time to get performance of that version to an acceptable level. Currently I'm building and installing ports in the same order as the current official portmaster version, but that could easily be changed. I have considered following the same concept as synth does (i.e. build ports in a clean environment), at least as an option. But I have not started to implement such a feature, yet. > Is this maybe a problem with portmaster as poudiere handles this correctly? This is a design decision in portmaster that has existed for at least a decade. Use INSTALL_DEPENDS if you depend on a port being available and upgraded before your port's do-install is invoked. Changing the current portmaster version in ports is no option, since it does not offer to recursively upgrade or install any other port while working on some port and it cannot easily be made to support such a sequence of actions. Regards, STefan
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?7ccc8168-fa3b-9872-dc5a-13a9b394d5c2>