From nobody Sun Oct 29 11:51:57 2023 X-Original-To: ports@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SJFBM5C4Tz4ys5h for ; Sun, 29 Oct 2023 11:52:11 +0000 (UTC) (envelope-from junchoon@dec.sakura.ne.jp) Received: from www121.sakura.ne.jp (www121.sakura.ne.jp [153.125.133.21]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4SJFBK4JFCz3MNd for ; Sun, 29 Oct 2023 11:52:08 +0000 (UTC) (envelope-from junchoon@dec.sakura.ne.jp) Authentication-Results: mx1.freebsd.org; dkim=none; spf=none (mx1.freebsd.org: domain of junchoon@dec.sakura.ne.jp has no SPF policy when checking 153.125.133.21) smtp.mailfrom=junchoon@dec.sakura.ne.jp; dmarc=none Received: from kalamity.joker.local (123-1-80-101.area1b.commufa.jp [123.1.80.101]) (authenticated bits=0) by www121.sakura.ne.jp (8.16.1/8.16.1/[SAKURA-WEB]/20201212) with ESMTPA id 39TBpwZP071526 for ; Sun, 29 Oct 2023 20:51:59 +0900 (JST) (envelope-from junchoon@dec.sakura.ne.jp) Date: Sun, 29 Oct 2023 20:51:57 +0900 From: Tomoaki AOKI To: ports@freebsd.org Subject: Re: We need to do something about build times Message-Id: <20231029205157.4f388da8c36640cae7e37013@dec.sakura.ne.jp> In-Reply-To: <3BC6F9F2-70EA-4E84-A482-F14F52F24E24@freebsd.org> References: <4CDDA3A9-083A-4376-BA74-9431A0CBDCBA@freebsd.org> <3BC6F9F2-70EA-4E84-A482-F14F52F24E24@freebsd.org> Organization: Junchoon corps X-Mailer: Sylpheed 3.7.0 (GTK+ 2.24.33; amd64-portbld-freebsd14.0) List-Id: Porting software to FreeBSD List-Archive: https://lists.freebsd.org/archives/freebsd-ports List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-ports@freebsd.org X-BeenThere: freebsd-ports@freebsd.org Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Spamd-Result: default: False [-1.49 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; AUTH_NA(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_SHORT(-0.99)[-0.987]; MV_CASE(0.50)[]; MIME_GOOD(-0.10)[text/plain]; ONCE_RECEIVED(0.10)[]; ASN(0.00)[asn:7684, ipnet:153.125.128.0/18, country:JP]; RCVD_COUNT_ONE(0.00)[1]; MIME_TRACE(0.00)[0:+]; RCVD_TLS_LAST(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; MLMMJ_DEST(0.00)[ports@freebsd.org]; R_DKIM_NA(0.00)[]; HAS_ORG_HEADER(0.00)[]; MID_RHS_MATCH_FROM(0.00)[]; R_SPF_NA(0.00)[no SPF record]; FROM_HAS_DN(0.00)[]; ARC_NA(0.00)[]; DMARC_NA(0.00)[sakura.ne.jp]; TO_MATCH_ENVRCPT_ALL(0.00)[]; TO_DN_NONE(0.00)[]; PREVIOUSLY_DELIVERED(0.00)[ports@freebsd.org]; RCPT_COUNT_ONE(0.00)[1]; RCVD_VIA_SMTP_AUTH(0.00)[] X-Rspamd-Queue-Id: 4SJFBK4JFCz3MNd X-Spamd-Bar: - On Sat, 28 Oct 2023 16:10:11 +0200 Moin Rahman wrote: > > On Oct 28, 2023, at 12:32 AM, Moin Rahman wrote: > > > > > > > >> On Oct 27, 2023, at 11:37 PM, Tatsuki Makino wrote: > >> > >> Moin Rahman wrote on 2023/10/28 01:50: > >>> But by no means it reduces the build > >>> time of texlive-texmf. Hope everyone enjoys that. :) > >>> > >> > >> There are updates in the current port tree that cause packages rebuilt by glib updates to be rebuilt again :) > >> > >>> [00:01:19] [Dry Run] Deleting texlive-base-20230313_3.pkg: new dependency: print/ghostscript10 > >>> [00:01:22] [Dry Run] Deleting texlive-texmf-20230313.pkg: missing dependency: texlive-base-20230313_3 > >>> [00:01:39] [Dry Run] Ports to build: ... print/texlive-base print/texlive-texmf ... > >> > >> As far as I can see, it seems that it is possible to avoid rebuilding texlive-texmf by manually running poudriere bulk with print/texlive-base. > >> However, something else may cause texlive-texmf package to be removed, so it would be better to proceed gradually from libXdmcp, libxcb or something. > >> > >> I enjoy manual manipulation to minimize the time spent on rebuilding :) > >> > >> Regards. > >> > > > > I believe you do not have the latest tree. I have removed the build time dependency to texlive-base. > > > > This is my latest build: > > > > https://pkg.bofh.network/data/latest-per-pkg/texlive-texmf/20230313/124i386-default.log > > > > And there is not call to texlive-base itself. > > > > Kind regards, > > Moin(bofh@ with tex@ hats on) > > > > In contrary to my previous comment I think that somehow poudriere detected the change that it no longer depends on print/texlive-base and hence rebuilt the pkg so that it's properly processed in the pkg and removes the dependency on print/texlive-base. > > So in the previous pkg repo it had a BUILD time dependency on print/texlive-base but after the latest build it is no longer there. Maybe there are still some place of improvements in poudriere's change detection mechanism specially BUILD_DEPENDS. :P > > Kind regards, > Moin(bofh@ with all hats off) And maybe indirect dependencies, too. ;-( Not sure it's already done or not, maybe pkg database should record... *ACTUAL fetch depends *ACTUAL patch depends *ACTUAL build depends *ACTUAL lib depends *ACTUAL run depends *And possibly, ACTUAL test depends regardless it's explicitly specified in ports skeleton (including via uses etc.) or not. For example, for lib depends, If port A depends on port B, and port B depends on port C in each Makefile, If nothing in port A directly links libraries in port C, no need to record port C as dependency of port A. If anything in port A directly links libraries in port C, port C SHALL be recorded as lib depends of port A, even if it is NOT explicitly described as *_DEPENDS in port A's Makefile. These would vary with how OPTIONS are set / how FLAVOURs are set. If this is possible, it would largely help maintainers, with the cost of huge amount of `make package` time. At worst, BUILD_DEPENDS should be recorded in pkg database and some option to retrieve them, like %r and %d. I strongly suspect the lack of this functionality affects mis-behaviour of poudriere on deciding build order and combination. -- Tomoaki AOKI