From nobody Thu Apr 10 17:14:31 2025 X-Original-To: freebsd-current@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 4ZYRJZ2fxSz5tCv9 for ; Thu, 10 Apr 2025 17:14:54 +0000 (UTC) (envelope-from marklmi@yahoo.com) Received: from sonic315-54.consmr.mail.gq1.yahoo.com (sonic315-54.consmr.mail.gq1.yahoo.com [98.137.65.30]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 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 4ZYRJY3gKvz4Lm8 for ; Thu, 10 Apr 2025 17:14:53 +0000 (UTC) (envelope-from marklmi@yahoo.com) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=yahoo.com header.s=s2048 header.b=DKGbqLPq; dmarc=pass (policy=reject) header.from=yahoo.com; spf=pass (mx1.freebsd.org: domain of marklmi@yahoo.com designates 98.137.65.30 as permitted sender) smtp.mailfrom=marklmi@yahoo.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1744305287; bh=Tnsdnl1X8usfK7yBFF8tTv1RDOJW35jCIXY2aEB9Z4o=; h=Subject:From:In-Reply-To:Date:Cc:References:To:From:Subject:Reply-To; b=DKGbqLPq1NR3UjBdVcgQKXGrN/1p6hJo68WjZ2cSI2kaxyYV7bHTgV41yXaUr72xQtENp7v/yuFRDgBFVj+8OHd1G5PEeqfJPf9XPi2THX3g/ehJWjwMsn4Nup6kDDN7GVgiz4VIZaI8k/j23MzrW/kdu2Digfm2f4QgX7X9d6p+7G2Vjx15nlfT2KA/hEm0GKfoLIreSeIieN83WVTAPOJe4ryC2mIfraL18/ELorvOcRu+Ac6egRfq4labUfimfbCEWU8IKqe/N1c47fempF4hsnqyJgCZKiUahdk9J1UMKcmYgNRX19Wse0LX1pNAzu7Mgm9EI5y7Dq8Mx91U+Q== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1744305287; bh=flFfjp2uLI7g3ZbuxNtFvsn+6mELeFq+IhfW285hcf0=; h=X-Sonic-MF:Subject:From:Date:To:From:Subject; b=tU3DEZ5EC4pxqW0lrb8bPNXxXI/pkhoENNuXvziBJg2fF5+HWJ3a4S9D7CJM8CA3RfUIU1sMBrtj5LAIuzywFWD9zY5OoRYhgG7EiYJ34DygDyg4B8MxboXd083ZvtJyU3pxpuqgrwA8joTAThKLCj4b0rofHUQ0IYIXqvUxPS3LGGKrzo2tF2cIAKZM4z2OLGkWKEWVySs4OdrsWwDmrO29+20FJ9BVt48QqkPkRM1cR1HGCZ9NHywORUB2AQt1vcg5SxFbY/ZtfTaBo+kMKpnIWAdEzznasBQ4O7klNg8Ua6hzC000YkyzuxeJn6s3gEBNDIQac+5P+Fryk0xkHA== X-YMail-OSG: HVzs7MkVM1mVxBrK0c0fblzmtrtUykVDz3F9MaX6brgIjvGeH3z.7HijhKbdOZV Chc6e6Plamzzrcpo0OK6bJ84sB_4wTHae0stl0NGKjZXaP.LrJnhj76CZzXe1nTnphOwgBJlJ4b7 .KOvuxn6I1bdreVfjBNSoq1TDZrYyPPHMMZxDM8O95RyO5owOWtzW.dKhIqAB36jk1tMq7O5f9o. lDiSoC2rOnGK2AGwdVvEFWtSUoMO_PSR1SWgfnUVPL1wj8CYng_Joo3eB2usVl1aWO.svzxjd8pY uQiFOeZjlTbo_PneNnPQKJt1JtI4qzBGSCW7XC8bEQe39iDdcffbjDStqjRHlGZnGNcp.FFs0VDN LCE0v3PqApxyX7CEdy3Ec.81d.UfR.UGtrd4QmrgwSngQmRog5E.zzvBk6uTU3Gh6OLRuWKq1xMT KJ.RHs5MtAX4RRhdUmwgAY7EPsASFq8vWcHT9Ztt_QjEpeU.3uX8kvCLs5UZpBSe.h_.kCMscv2m 4.wi7_c6q8Fe3lbuKss6VaLTgiEPQrFFiTck8.0tRWGOZMqh294M_k1ZRyTO5Omf_9pjaIcM2vYi H9PwviocA3AqqJ8CFn8IFTFY1B9oBQlAT1aQZlfdny9YpWVORKG79RO09jb8gMHlw._ox7g3LwjL hSZUt7uN1QKNpLEG5QLS6L_qQ_OFh.B8Wfm44XN._ZNlHFF79fwSGikE7k2S0cLgk6fVkEvPVgqr 1zBXmmAHoF5vGVjRxJQtZI8mvIpz.Ws7cWpTYej9Oi8nijBrTniCcIx0fUOl82L6ale2X1F8Le8p vh3zm7.GGcFHI2I95VEAWhlIR5qkGsrHt.8H751DDP1WYOgdgtgsn1bt9d8Y9KtCgRcj6O8Cg7k5 gpIjbEsfwb3pbnxMvUo7UVZcpDMTtdSemMSRYFFmuun8E1d2iB4_4R2lz6c3DM3kB_rqftmbrdfN Dlz9QCwiBQfEHwajQ8t.I5ww.jpVwuK7XOFg4QwtvwDATil_O0wwXz6S55VOXSZvhKKsXvIbj_lI TUGR0aSnWUAQL.n4rjuINkBtB9xVgHVblNR4seTTsO.NtTvFa1CX0e4_k_S1VahV3mQXG4h.Yv4I 52dgFAIaTr4uz5D0udn5anjOKyRWRfAzFnWFWcbzgyW48EvnD6T3r.XxxkiwtCRV5vjC7ZYAGw9z MlsLbuAD2Z.f8O4nmKC8_TkQx8MNra5Zm_eub4h6ElbK3Te_WxvT0izigGQoY8Zz_btzLN36PPSP p6oSf6.7LTSaw0F4iJHxMs86BYcPX9SNp6UbnExRyztT67RnIp47UFoxdiiWLnbzb.LICGaubhwM ee.L7VMy.ZQOGZ7ggr5yYzp67ZuKyPinvkMReTwujwaKs7sWjKiRK3sOTgHtXpQyoheWsyykCRmV uOlfmNT0jZA6O_qG6uXi7BAdC51aqoFdK6mHVwEGf9qU.EeHbuulZDJw4hDGt1vT.X.bAjkR_USQ 5R.SJk24cWure4CE_xl0xoJ4Gcht5VNeQxBqlQgEEyNAca7RkJv6sbd1Q0MriaIwoszDbcddxyWX 9tI93C.RQE8D_luSob6PBNjW4SR3y.awPqrwU6gduGGENVWAbM_cHZphVrHjyWwXyPIB4ZCAf.L0 Yf8oAKZ_2dbddQMYzAYanBsuUrOCnv8JokHN4cAdpEwgPLkABygfbt5D.k3PvaOi42a6fz78jjaV SKKHcEyTiGQHHbVsOFsTSM7sQ1S0H_yzwO21nGda8VXrqYQMvdF6JO0kehLD8t6Qsm14PJbircwO YUt2JYTZGjbAO1Djp38pui.kZ.5ViLT5WJX1EKUAeQdPZYnyIO8UMiEd_Tw9wYT_ZJYaE3NgH8lF nbJCKH9STdgm7EemZTMAKZcQvSHvI6vOBPy2Yc7xUg_0myGZKOMxWsBtk9rxAYYgq6lh4_xgi49M BhbhG1se5ULMaIWYSZkFrUKhcTFoU8nFWM073viq6lT8XXtYCBZV2m6aAUhYgov93GuNG3WtMvBD Au0KaYGc4j4nhOqWjTgaFXuak_dYcTD0b4WVcU5c0dfG1gW.AyT.oO5_HuPoUVYG9sX292fenqmU Y_FRCG6RysWTqH.9KJniseni1_ttrst0JloDHJaBirEZVcl3S75ttopteRXTeTvZP2pTpfEHYyG1 Bo9ICoppR26x399nQh5LTduA.ipZ9tcdQfn8.6Sia86B7iu6vrBeXagI89e77gjrEdieSkwbMG3C PDo8nNmmFcYb2rT_nL0VODrS5CaxkCIVRZlXb7akP2lr8B0SXskxIL80BA_.fFc9tNhVq4jRbNZ0 WBwpS X-Sonic-MF: X-Sonic-ID: af5bef6b-375f-41cd-878a-1e8f7e89a197 Received: from sonic.gate.mail.ne1.yahoo.com by sonic315.consmr.mail.gq1.yahoo.com with HTTP; Thu, 10 Apr 2025 17:14:47 +0000 Received: by hermes--production-gq1-6f8bfcd964-g9xd6 (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID e4b7ec98cf08d5b3e200148a5c16b975; Thu, 10 Apr 2025 17:14:42 +0000 (UTC) Content-Type: text/plain; charset=us-ascii List-Id: Discussions about the use of FreeBSD-current List-Archive: https://lists.freebsd.org/archives/freebsd-current List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-current@FreeBSD.org Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3826.500.181.1.5\)) Subject: Re: UPDATE: pkg 2.1.0 looks to be making official bulk builds of packages take much longer [Examples of {patch,build,lib}-depends timings for bulk -a --and related notes] From: Mark Millard In-Reply-To: Date: Thu, 10 Apr 2025 10:14:31 -0700 Cc: Gleb Popov <6yearold@gmail.com>, FreeBSD Current , FreeBSD Mailing List Content-Transfer-Encoding: quoted-printable Message-Id: <48D0BE51-8111-465B-96BC-969DE7EBFEFC@yahoo.com> References: <8E2FBAD3-EF6F-4D99-A340-21F8FD19AE0F@yahoo.com> <84FBBAF8-025E-4B9D-9797-51735567A8DB@yahoo.com> <366E27FD-FA5B-4BF8-B6C4-6C495DB289C5@yahoo.com> <7ziazrj7szuqhov3oppjbh3jyu3f2p2owntv4oxprelrdjzc6u@hkuf5szf3zwy> <0414EBFB-B63A-4738-ADB0-38B6CF3725DA@yahoo.com> <05128806-8F20-43A6-946B-A3780259F61A@yahoo.com> <178AD8CD-57F2-4ADB-AE82-6B0C7A4D2C01@yahoo.com> To: Baptiste Daroussin X-Mailer: Apple Mail (2.3826.500.181.1.5) X-Spamd-Result: default: False [-2.90 / 15.00]; RBL_SENDERSCORE_REPUT_9(-1.00)[98.137.65.30:from]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_LONG(-1.00)[-0.999]; NEURAL_SPAM_SHORT(0.60)[0.599]; DMARC_POLICY_ALLOW(-0.50)[yahoo.com,reject]; MV_CASE(0.50)[]; R_SPF_ALLOW(-0.20)[+ptr:yahoo.com]; R_DKIM_ALLOW(-0.20)[yahoo.com:s=s2048]; MIME_GOOD(-0.10)[text/plain]; FREEMAIL_CC(0.00)[gmail.com,freebsd.org]; FREEMAIL_FROM(0.00)[yahoo.com]; FREEMAIL_ENVFROM(0.00)[yahoo.com]; ARC_NA(0.00)[]; TO_DN_ALL(0.00)[]; RCVD_TLS_LAST(0.00)[]; MIME_TRACE(0.00)[0:+]; FROM_HAS_DN(0.00)[]; ASN(0.00)[asn:36647, ipnet:98.137.64.0/20, country:US]; RCPT_COUNT_THREE(0.00)[4]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; FROM_EQ_ENVFROM(0.00)[]; DKIM_TRACE(0.00)[yahoo.com:+]; MLMMJ_DEST(0.00)[freebsd-current@freebsd.org]; RWL_MAILSPIKE_POSSIBLE(0.00)[98.137.65.30:from]; MID_RHS_MATCH_FROM(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[98.137.65.30:from]; RCVD_VIA_SMTP_AUTH(0.00)[]; DWL_DNSWL_NONE(0.00)[yahoo.com:dkim] X-Rspamd-Queue-Id: 4ZYRJY3gKvz4Lm8 X-Spamd-Bar: -- On Apr 10, 2025, at 09:25, Mark Millard wrote: > The following data are from later in the builder seqeunce. > Here I'm not looking at builder activity with large Elapsed > multiplication factors for the build. It is more of a random > sampling showing examples of build-depends, lib-depends, and > run-depends and some with more than one of those notably > contributing. This is later when dependencies are normally > involve for the package builds. >=20 > A property of the dependency based ordering of builds is that > the earlier builds tend of have fewer dependencies and the later > builds tend to have more. >=20 > For building around 36000 packages, even a mean rate of around > 1 extra second per is around 10 hrs of extra time. (But normal > extra times are not generally near the mean-extra-time.) >=20 > It appears that a big factor in the overall Elapsed time is > the large fraction of the 30000+ packages that are "small > build step" packages --the subset of that for which build later > because of involved dependencies. The dependency analysis is more > time consuming than the build time --or even total for all of the > steps other than build-depends, lib-depends, and run-depends. >=20 > Basically: for the most part, only early builder runs can be > quick runs (no or very limited dependencies involved). >=20 > It would take a massive decrease in most build-depends, > lib-depends, and run-depends (when any) Elapsed times in > later builds for this not to be the case --because of the > number of packages for which the rest of the time is small. > Such does not seem likely? The additions in this note show some examples of just one builder being active instead of when others are also active. Each is a bulk -C ORIGIN of ORIGIN I'd listed data for previously. > The supporting detail . . . >=20 > I'll note that the 3 load averages reported by top for the > below were near the number of FreeBSD cpus whenever I happened > to check that, instead of being during high load average time > frames. (I.e., no packages with large builder steps were > active.) There is a later explanation of this. >=20 >=20 > Both build-depends and lib-depends: >=20 > # sort -s -k5,5 ~/bulk-output-release-aarch64-ports-alt-2.txt | grep = -B4 -A3 -e "^\[03:52:[0-9][0-9]\] .*configure$" | more > . . . > [03:50:57] [14] [00:00:15] Status devel/dwarves | dwarves-1.19_3: = patch-depends > [03:50:57] [14] [00:00:15] Status devel/dwarves | dwarves-1.19_3: = patch > [03:50:59] [14] [00:00:17] Status devel/dwarves | dwarves-1.19_3: = build-depends > [03:52:17] [14] [00:01:35] Status devel/dwarves | dwarves-1.19_3: = lib-depends > [03:52:28] [14] [00:01:46] Status devel/dwarves | dwarves-1.19_3: = configure > [03:52:31] [14] [00:01:49] Status devel/dwarves | dwarves-1.19_3: = build > [03:52:33] [14] [00:01:51] Status devel/dwarves | dwarves-1.19_3: = run-depends > [03:52:34] [14] [00:01:52] Status devel/dwarves | dwarves-1.19_3: = stage > . . . For comparison/contrast: (The fetch would not have to repeat.) I stopped the bulk -a an run just a -C devel/dwarves (no other builders, no need to rebuild dependencies): [00:00:38] [05] [00:00:00] Building devel/dwarves | dwarves-1.19_3 [00:00:39] [05] [00:00:01] Status devel/dwarves | dwarves-1.19_3: = check-sanity [00:00:39] [05] [00:00:01] Status devel/dwarves | dwarves-1.19_3: = pkg-depends [00:00:39] [05] [00:00:01] Status devel/dwarves | dwarves-1.19_3: = fetch-depends [00:00:39] [05] [00:00:01] Status devel/dwarves | dwarves-1.19_3: = fetch [00:00:40] [05] [00:00:02] Status devel/dwarves | dwarves-1.19_3: = checksum [00:00:40] [05] [00:00:02] Status devel/dwarves | dwarves-1.19_3: = extract-depends [00:00:40] [05] [00:00:02] Status devel/dwarves | dwarves-1.19_3: = extract [00:00:40] [05] [00:00:02] Status devel/dwarves | dwarves-1.19_3: = patch-depends [00:00:40] [05] [00:00:02] Status devel/dwarves | dwarves-1.19_3: = patch [00:00:40] [05] [00:00:02] Status devel/dwarves | dwarves-1.19_3: = build-depends [00:01:15] [05] [00:00:37] Status devel/dwarves | dwarves-1.19_3: = lib-depends [00:01:21] [05] [00:00:43] Status devel/dwarves | dwarves-1.19_3: = configure [00:01:22] [05] [00:00:44] Status devel/dwarves | dwarves-1.19_3: = build [00:01:22] [05] [00:00:44] Status devel/dwarves | dwarves-1.19_3: = run-depends [00:01:22] [05] [00:00:44] Status devel/dwarves | dwarves-1.19_3: = stage [00:01:22] [05] [00:00:44] Status devel/dwarves | dwarves-1.19_3: = package [00:01:22] [05] [00:00:44] Finished devel/dwarves | dwarves-1.19_3: = Success Still a non-trivial addition to the Elapsed time if there are 10s of thousands of such packages in the ball park. > -- > [03:52:08] [01] [00:00:08] Status security/seccure | = seccure-0.5_10: patch-depends > [03:52:08] [01] [00:00:08] Status security/seccure | = seccure-0.5_10: patch > [03:52:08] [01] [00:00:08] Status security/seccure | = seccure-0.5_10: build-depends > [03:52:18] [01] [00:00:18] Status security/seccure | = seccure-0.5_10: lib-depends > [03:52:31] [01] [00:00:31] Status security/seccure | = seccure-0.5_10: configure > [03:52:31] [01] [00:00:31] Status security/seccure | = seccure-0.5_10: build > [03:52:32] [01] [00:00:32] Status security/seccure | = seccure-0.5_10: run-depends > [03:52:32] [01] [00:00:32] Status security/seccure | = seccure-0.5_10: stage >=20 >=20 > lib-depends: >=20 > # sort -s -k5,5 ~/bulk-output-release-aarch64-ports-alt-2.txt | grep = -B4 -A3 -e "^\[05:20:[0-9][0-9]\] .*configure$" | more > . . . > -- > [05:19:35] [05] [00:00:10] Status graphics/gdchart | = gdchart-0.11.5_11: patch-depends > [05:19:35] [05] [00:00:10] Status graphics/gdchart | = gdchart-0.11.5_11: patch > [05:19:36] [05] [00:00:11] Status graphics/gdchart | = gdchart-0.11.5_11: build-depends > [05:19:36] [05] [00:00:11] Status graphics/gdchart | = gdchart-0.11.5_11: lib-depends > [05:20:08] [05] [00:00:43] Status graphics/gdchart | = gdchart-0.11.5_11: configure > [05:20:09] [05] [00:00:44] Status graphics/gdchart | = gdchart-0.11.5_11: build > [05:20:11] [05] [00:00:46] Status graphics/gdchart | = gdchart-0.11.5_11: run-depends > [05:20:11] [05] [00:00:46] Status graphics/gdchart | = gdchart-0.11.5_11: stage > . . . > -- > [05:20:02] [06] [00:02:04] Status net-p2p/bitmark-recorder | = bitmark-recorder-0.16.0_1: patch-depends > [05:20:02] [06] [00:02:04] Status net-p2p/bitmark-recorder | = bitmark-recorder-0.16.0_1: patch > [05:20:03] [06] [00:02:05] Status net-p2p/bitmark-recorder | = bitmark-recorder-0.16.0_1: build-depends > [05:20:04] [06] [00:02:06] Status net-p2p/bitmark-recorder | = bitmark-recorder-0.16.0_1: lib-depends > [05:20:26] [06] [00:02:28] Status net-p2p/bitmark-recorder | = bitmark-recorder-0.16.0_1: configure > [05:20:27] [06] [00:02:29] Status net-p2p/bitmark-recorder | = bitmark-recorder-0.16.0_1: build > [05:20:39] [06] [00:02:41] Status net-p2p/bitmark-recorder | = bitmark-recorder-0.16.0_1: run-depends > [05:20:39] [06] [00:02:41] Status net-p2p/bitmark-recorder | = bitmark-recorder-0.16.0_1: stage >=20 >=20 > build-depends and run-depends: >=20 > # sort -s -k5,5 ~/bulk-output-release-aarch64-ports-alt-2.txt | grep = -B4 -A3 -e "^\[09:15:[0-9][0-9]\] .*configure$" | more > [09:15:03] [07] [00:00:04] Status = databases/pear-Horde_Memcache@php82 | = php82-pear-horde-Horde_Memcache-2.1.2: patch-depends > [09:15:03] [07] [00:00:04] Status = databases/pear-Horde_Memcache@php82 | = php82-pear-horde-Horde_Memcache-2.1.2: patch > [09:15:03] [07] [00:00:04] Status = databases/pear-Horde_Memcache@php82 | = php82-pear-horde-Horde_Memcache-2.1.2: build-depends > [09:15:22] [07] [00:00:23] Status = databases/pear-Horde_Memcache@php82 | = php82-pear-horde-Horde_Memcache-2.1.2: lib-depends > [09:15:22] [07] [00:00:23] Status = databases/pear-Horde_Memcache@php82 | = php82-pear-horde-Horde_Memcache-2.1.2: configure > [09:15:22] [07] [00:00:23] Status = databases/pear-Horde_Memcache@php82 | = php82-pear-horde-Horde_Memcache-2.1.2: build > [09:15:22] [07] [00:00:23] Status = databases/pear-Horde_Memcache@php82 | = php82-pear-horde-Horde_Memcache-2.1.2: run-depends > [09:16:01] [07] [00:01:02] Status = databases/pear-Horde_Memcache@php82 | = php82-pear-horde-Horde_Memcache-2.1.2: stage > . . . > -- > [09:15:13] [04] [00:00:13] Status devel/pear-Horde_Date@php82 | = php82-pear-horde-Horde_Date-2.4.1: patch-depends > [09:15:13] [04] [00:00:13] Status devel/pear-Horde_Date@php82 | = php82-pear-horde-Horde_Date-2.4.1: patch > [09:15:13] [04] [00:00:13] Status devel/pear-Horde_Date@php82 | = php82-pear-horde-Horde_Date-2.4.1: build-depends > [09:15:31] [04] [00:00:31] Status devel/pear-Horde_Date@php82 | = php82-pear-horde-Horde_Date-2.4.1: lib-depends > [09:15:31] [04] [00:00:31] Status devel/pear-Horde_Date@php82 | = php82-pear-horde-Horde_Date-2.4.1: configure > [09:15:31] [04] [00:00:31] Status devel/pear-Horde_Date@php82 | = php82-pear-horde-Horde_Date-2.4.1: build > [09:15:31] [04] [00:00:31] Status devel/pear-Horde_Date@php82 | = php82-pear-horde-Horde_Date-2.4.1: run-depends > [09:16:08] [04] [00:01:08] Status devel/pear-Horde_Date@php82 | = php82-pear-horde-Horde_Date-2.4.1: stage > . . . > -- > [09:14:59] [13] [00:00:03] Status net/pear-Horde_Ldap@php82 | = php82-pear-horde-Horde_Ldap-2.4.2: patch-depends > [09:14:59] [13] [00:00:03] Status net/pear-Horde_Ldap@php82 | = php82-pear-horde-Horde_Ldap-2.4.2: patch > [09:14:59] [13] [00:00:03] Status net/pear-Horde_Ldap@php82 | = php82-pear-horde-Horde_Ldap-2.4.2: build-depends > [09:15:18] [13] [00:00:22] Status net/pear-Horde_Ldap@php82 | = php82-pear-horde-Horde_Ldap-2.4.2: lib-depends > [09:15:18] [13] [00:00:22] Status net/pear-Horde_Ldap@php82 | = php82-pear-horde-Horde_Ldap-2.4.2: configure > [09:15:18] [13] [00:00:22] Status net/pear-Horde_Ldap@php82 | = php82-pear-horde-Horde_Ldap-2.4.2: build > [09:15:18] [13] [00:00:22] Status net/pear-Horde_Ldap@php82 | = php82-pear-horde-Horde_Ldap-2.4.2: run-depends > [09:16:19] [13] [00:01:23] Status net/pear-Horde_Ldap@php82 | = php82-pear-horde-Horde_Ldap-2.4.2: stage > -- > [09:14:44] [02] [00:00:04] Status net/pear-Horde_Url@php82 | = php82-pear-horde-Horde_Url-2.2.6: patch-depends > [09:14:44] [02] [00:00:04] Status net/pear-Horde_Url@php82 | = php82-pear-horde-Horde_Url-2.2.6: patch > [09:14:44] [02] [00:00:04] Status net/pear-Horde_Url@php82 | = php82-pear-horde-Horde_Url-2.2.6: build-depends > [09:15:03] [02] [00:00:23] Status net/pear-Horde_Url@php82 | = php82-pear-horde-Horde_Url-2.2.6: lib-depends > [09:15:03] [02] [00:00:23] Status net/pear-Horde_Url@php82 | = php82-pear-horde-Horde_Url-2.2.6: configure > [09:15:03] [02] [00:00:23] Status net/pear-Horde_Url@php82 | = php82-pear-horde-Horde_Url-2.2.6: build > [09:15:03] [02] [00:00:23] Status net/pear-Horde_Url@php82 | = php82-pear-horde-Horde_Url-2.2.6: run-depends > [09:15:21] [02] [00:00:41] Status net/pear-Horde_Url@php82 | = php82-pear-horde-Horde_Url-2.2.6: stage > -- > [09:14:59] [09] [00:00:03] Status security/pear-Horde_Group@php82 = | php82-pear-horde-Horde_Group-2.1.1: patch-depends > [09:15:00] [09] [00:00:04] Status security/pear-Horde_Group@php82 = | php82-pear-horde-Horde_Group-2.1.1: patch > [09:15:00] [09] [00:00:04] Status security/pear-Horde_Group@php82 = | php82-pear-horde-Horde_Group-2.1.1: build-depends > [09:15:19] [09] [00:00:23] Status security/pear-Horde_Group@php82 = | php82-pear-horde-Horde_Group-2.1.1: lib-depends > [09:15:19] [09] [00:00:23] Status security/pear-Horde_Group@php82 = | php82-pear-horde-Horde_Group-2.1.1: configure > [09:15:19] [09] [00:00:23] Status security/pear-Horde_Group@php82 = | php82-pear-horde-Horde_Group-2.1.1: build > [09:15:19] [09] [00:00:23] Status security/pear-Horde_Group@php82 = | php82-pear-horde-Horde_Group-2.1.1: run-depends > [09:15:59] [09] [00:01:03] Status security/pear-Horde_Group@php82 = | php82-pear-horde-Horde_Group-2.1.1: stage > -- > [09:15:00] [14] [00:00:04] Status = www/pear-Horde_SessionHandler@php82 | = php82-pear-horde-Horde_SessionHandler-2.3.0: patch-depends > [09:15:00] [14] [00:00:04] Status = www/pear-Horde_SessionHandler@php82 | = php82-pear-horde-Horde_SessionHandler-2.3.0: patch > [09:15:00] [14] [00:00:04] Status = www/pear-Horde_SessionHandler@php82 | = php82-pear-horde-Horde_SessionHandler-2.3.0: build-depends > [09:15:20] [14] [00:00:24] Status = www/pear-Horde_SessionHandler@php82 | = php82-pear-horde-Horde_SessionHandler-2.3.0: lib-depends > [09:15:20] [14] [00:00:24] Status = www/pear-Horde_SessionHandler@php82 | = php82-pear-horde-Horde_SessionHandler-2.3.0: configure > [09:15:20] [14] [00:00:24] Status = www/pear-Horde_SessionHandler@php82 | = php82-pear-horde-Horde_SessionHandler-2.3.0: build > [09:15:20] [14] [00:00:24] Status = www/pear-Horde_SessionHandler@php82 | = php82-pear-horde-Horde_SessionHandler-2.3.0: run-depends > [09:16:00] [14] [00:01:04] Status = www/pear-Horde_SessionHandler@php82 | = php82-pear-horde-Horde_SessionHandler-2.3.0: stage >=20 >=20 > Mostly build-depends but one also has lib-depends: >=20 > # sort -s -k5,5 ~/bulk-output-release-aarch64-ports-alt-2.txt | grep = -B4 -A3 -e "^\[11:10:[0-9][0-9]\] .*configure$" | more > [11:10:02] [14] [00:00:02] Status devel/cask@nox | = cask-emacs_nox-0.8.3_17: patch-depends > [11:10:02] [14] [00:00:02] Status devel/cask@nox | = cask-emacs_nox-0.8.3_17: patch > [11:10:02] [14] [00:00:02] Status devel/cask@nox | = cask-emacs_nox-0.8.3_17: build-depends > [11:10:46] [14] [00:00:46] Status devel/cask@nox | = cask-emacs_nox-0.8.3_17: lib-depends > [11:10:46] [14] [00:00:46] Status devel/cask@nox | = cask-emacs_nox-0.8.3_17: configure > [11:10:46] [14] [00:00:46] Status devel/cask@nox | = cask-emacs_nox-0.8.3_17: build > [11:10:46] [14] [00:00:46] Status devel/cask@nox | = cask-emacs_nox-0.8.3_17: run-depends > [11:10:46] [14] [00:00:46] Status devel/cask@nox | = cask-emacs_nox-0.8.3_17: stage > -- > [11:09:53] [04] [00:00:10] Status devel/distel@nox | = distel-emacs_nox-4.1.1_19: patch-depends > [11:09:53] [04] [00:00:10] Status devel/distel@nox | = distel-emacs_nox-4.1.1_19: patch > [11:09:54] [04] [00:00:11] Status devel/distel@nox | = distel-emacs_nox-4.1.1_19: build-depends > [11:10:38] [04] [00:00:55] Status devel/distel@nox | = distel-emacs_nox-4.1.1_19: lib-depends > [11:10:38] [04] [00:00:55] Status devel/distel@nox | = distel-emacs_nox-4.1.1_19: configure > [11:10:38] [04] [00:00:55] Status devel/distel@nox | = distel-emacs_nox-4.1.1_19: build > [11:10:38] [04] [00:00:55] Status devel/distel@nox | = distel-emacs_nox-4.1.1_19: run-depends > [11:10:38] [04] [00:00:55] Status devel/distel@nox | = distel-emacs_nox-4.1.1_19: stage > -- > [11:09:36] [12] [00:00:14] Status devel/lua-mode@nox | = lua-mode-emacs_nox-20210802_10: patch-depends > [11:09:36] [12] [00:00:14] Status devel/lua-mode@nox | = lua-mode-emacs_nox-20210802_10: patch > [11:09:37] [12] [00:00:15] Status devel/lua-mode@nox | = lua-mode-emacs_nox-20210802_10: build-depends > [11:10:00] [12] [00:00:38] Status devel/lua-mode@nox | = lua-mode-emacs_nox-20210802_10: lib-depends > [11:10:00] [12] [00:00:38] Status devel/lua-mode@nox | = lua-mode-emacs_nox-20210802_10: configure > [11:10:00] [12] [00:00:38] Status devel/lua-mode@nox | = lua-mode-emacs_nox-20210802_10: build > [11:10:00] [12] [00:00:38] Status devel/lua-mode@nox | = lua-mode-emacs_nox-20210802_10: run-depends > [11:10:00] [12] [00:00:38] Status devel/lua-mode@nox | = lua-mode-emacs_nox-20210802_10: stage > -- > [11:09:14] [05] [00:00:17] Status devel/obby | obby-0.4.8_6: = patch-depends > [11:09:14] [05] [00:00:17] Status devel/obby | obby-0.4.8_6: patch > [11:09:16] [05] [00:00:19] Status devel/obby | obby-0.4.8_6: = build-depends > [11:09:59] [05] [00:01:02] Status devel/obby | obby-0.4.8_6: = lib-depends > [11:10:21] [05] [00:01:24] Status devel/obby | obby-0.4.8_6: = configure > [11:10:26] [05] [00:01:29] Status devel/obby | obby-0.4.8_6: build > [11:10:37] [05] [00:01:40] Status devel/obby | obby-0.4.8_6: = run-depends > [11:10:37] [05] [00:01:40] Status devel/obby | obby-0.4.8_6: stage > -- > [11:10:01] [07] [00:00:06] Status devel/pkg-info.el@nox | = pkg-info.el-emacs_nox-0.6_18: patch-depends > [11:10:01] [07] [00:00:06] Status devel/pkg-info.el@nox | = pkg-info.el-emacs_nox-0.6_18: patch > [11:10:01] [07] [00:00:06] Status devel/pkg-info.el@nox | = pkg-info.el-emacs_nox-0.6_18: build-depends > [11:10:23] [07] [00:00:28] Status devel/pkg-info.el@nox | = pkg-info.el-emacs_nox-0.6_18: lib-depends > [11:10:23] [07] [00:00:28] Status devel/pkg-info.el@nox | = pkg-info.el-emacs_nox-0.6_18: configure > [11:10:23] [07] [00:00:28] Status devel/pkg-info.el@nox | = pkg-info.el-emacs_nox-0.6_18: build > [11:10:23] [07] [00:00:28] Status devel/pkg-info.el@nox | = pkg-info.el-emacs_nox-0.6_18: run-depends > [11:10:23] [07] [00:00:28] Status devel/pkg-info.el@nox | = pkg-info.el-emacs_nox-0.6_18: stage > -- > [11:10:21] [02] [00:00:02] Status devel/tablist@nox | = tablist-emacs_nox-1.0.13_10: patch-depends > [11:10:21] [02] [00:00:02] Status devel/tablist@nox | = tablist-emacs_nox-1.0.13_10: patch > [11:10:21] [02] [00:00:02] Status devel/tablist@nox | = tablist-emacs_nox-1.0.13_10: build-depends > [11:10:40] [02] [00:00:21] Status devel/tablist@nox | = tablist-emacs_nox-1.0.13_10: lib-depends > [11:10:40] [02] [00:00:21] Status devel/tablist@nox | = tablist-emacs_nox-1.0.13_10: configure > [11:10:40] [02] [00:00:21] Status devel/tablist@nox | = tablist-emacs_nox-1.0.13_10: build > [11:10:40] [02] [00:00:21] Status devel/tablist@nox | = tablist-emacs_nox-1.0.13_10: run-depends > [11:10:40] [02] [00:00:21] Status devel/tablist@nox | = tablist-emacs_nox-1.0.13_10: stage > -- > [11:10:03] [11] [00:00:02] Status editors/apel@nox | = apel-emacs_nox-10.8.20220720_10: patch-depends > [11:10:03] [11] [00:00:02] Status editors/apel@nox | = apel-emacs_nox-10.8.20220720_10: patch > [11:10:03] [11] [00:00:02] Status editors/apel@nox | = apel-emacs_nox-10.8.20220720_10: build-depends > [11:10:25] [11] [00:00:24] Status editors/apel@nox | = apel-emacs_nox-10.8.20220720_10: lib-depends > [11:10:25] [11] [00:00:24] Status editors/apel@nox | = apel-emacs_nox-10.8.20220720_10: configure > [11:10:25] [11] [00:00:24] Status editors/apel@nox | = apel-emacs_nox-10.8.20220720_10: build > [11:10:25] [11] [00:00:24] Status editors/apel@nox | = apel-emacs_nox-10.8.20220720_10: run-depends > [11:10:25] [11] [00:00:24] Status editors/apel@nox | = apel-emacs_nox-10.8.20220720_10: stage > -- > [11:09:45] [09] [00:00:12] Status editors/slime@nox | = slime-emacs_nox-2.26.1.9_14: patch-depends > [11:09:45] [09] [00:00:12] Status editors/slime@nox | = slime-emacs_nox-2.26.1.9_14: patch > [11:09:46] [09] [00:00:13] Status editors/slime@nox | = slime-emacs_nox-2.26.1.9_14: build-depends > [11:10:33] [09] [00:01:00] Status editors/slime@nox | = slime-emacs_nox-2.26.1.9_14: lib-depends > [11:10:33] [09] [00:01:00] Status editors/slime@nox | = slime-emacs_nox-2.26.1.9_14: configure > [11:10:33] [09] [00:01:00] Status editors/slime@nox | = slime-emacs_nox-2.26.1.9_14: build > [11:10:37] [09] [00:01:04] Status editors/slime@nox | = slime-emacs_nox-2.26.1.9_14: run-depends > [11:10:37] [09] [00:01:04] Status editors/slime@nox | = slime-emacs_nox-2.26.1.9_14: stage > -- > [11:09:48] [13] [00:00:14] Status mail/mailest@nox | = mailest-emacs_nox-0.9.24_21: patch-depends > [11:09:48] [13] [00:00:14] Status mail/mailest@nox | = mailest-emacs_nox-0.9.24_21: patch > [11:09:51] [13] [00:00:17] Status mail/mailest@nox | = mailest-emacs_nox-0.9.24_21: build-depends > [11:09:52] [13] [00:00:18] Status mail/mailest@nox | = mailest-emacs_nox-0.9.24_21: lib-depends > [11:10:14] [13] [00:00:40] Status mail/mailest@nox | = mailest-emacs_nox-0.9.24_21: configure > [11:10:15] [13] [00:00:41] Status mail/mailest@nox | = mailest-emacs_nox-0.9.24_21: build > [11:10:15] [13] [00:00:41] Status mail/mailest@nox | = mailest-emacs_nox-0.9.24_21: run-depends > [11:10:38] [13] [00:01:04] Status mail/mailest@nox | = mailest-emacs_nox-0.9.24_21: stage For comparison/contrast: (The fetch would not have to repeat.) I stopped the bulk -a an run just a -C mail/mailest@nox (no other = builders, no need to rebuild dependencies): [00:00:37] [13] [00:00:00] Building mail/mailest@nox | = mailest-emacs_nox-0.9.24_21 [00:00:37] [13] [00:00:00] Status mail/mailest@nox | = mailest-emacs_nox-0.9.24_21: check-sanity [00:00:37] [13] [00:00:00] Status mail/mailest@nox | = mailest-emacs_nox-0.9.24_21: pkg-depends [00:00:37] [13] [00:00:00] Status mail/mailest@nox | = mailest-emacs_nox-0.9.24_21: fetch-depends [00:00:37] [13] [00:00:00] Status mail/mailest@nox | = mailest-emacs_nox-0.9.24_21: fetch [00:00:37] [13] [00:00:00] Status mail/mailest@nox | = mailest-emacs_nox-0.9.24_21: checksum [00:00:37] [13] [00:00:00] Status mail/mailest@nox | = mailest-emacs_nox-0.9.24_21: extract-depends [00:00:37] [13] [00:00:00] Status mail/mailest@nox | = mailest-emacs_nox-0.9.24_21: extract [00:00:37] [13] [00:00:00] Status mail/mailest@nox | = mailest-emacs_nox-0.9.24_21: patch-depends [00:00:37] [13] [00:00:00] Status mail/mailest@nox | = mailest-emacs_nox-0.9.24_21: patch [00:00:37] [13] [00:00:00] Status mail/mailest@nox | = mailest-emacs_nox-0.9.24_21: build-depends [00:00:37] [13] [00:00:00] Status mail/mailest@nox | = mailest-emacs_nox-0.9.24_21: lib-depends [00:00:59] [13] [00:00:22] Status mail/mailest@nox | = mailest-emacs_nox-0.9.24_21: configure [00:00:59] [13] [00:00:22] Status mail/mailest@nox | = mailest-emacs_nox-0.9.24_21: build [00:01:00] [13] [00:00:23] Status mail/mailest@nox | = mailest-emacs_nox-0.9.24_21: run-depends [00:01:08] [13] [00:00:31] Status mail/mailest@nox | = mailest-emacs_nox-0.9.24_21: stage [00:01:08] [13] [00:00:31] Status mail/mailest@nox | = mailest-emacs_nox-0.9.24_21: package [00:01:08] [13] [00:00:31] Finished mail/mailest@nox | = mailest-emacs_nox-0.9.24_21: Success Still a non-trivial addition to the Elapsed time if there are 10s of thousands of such packages in the ball park. > -- > [11:10:04] [12] [00:00:03] Status mail/x-face-e21@nox | = x-face-e21-emacs_nox-20070306_33: patch-depends > [11:10:04] [12] [00:00:03] Status mail/x-face-e21@nox | = x-face-e21-emacs_nox-20070306_33: patch > [11:10:04] [12] [00:00:03] Status mail/x-face-e21@nox | = x-face-e21-emacs_nox-20070306_33: build-depends > [11:10:27] [12] [00:00:26] Status mail/x-face-e21@nox | = x-face-e21-emacs_nox-20070306_33: lib-depends > [11:10:27] [12] [00:00:26] Status mail/x-face-e21@nox | = x-face-e21-emacs_nox-20070306_33: configure > [11:10:27] [12] [00:00:26] Status mail/x-face-e21@nox | = x-face-e21-emacs_nox-20070306_33: build > [11:10:27] [12] [00:00:26] Status mail/x-face-e21@nox | = x-face-e21-emacs_nox-20070306_33: run-depends > [11:10:29] [12] [00:00:28] Status mail/x-face-e21@nox | = x-face-e21-emacs_nox-20070306_33: stage >=20 >=20 > build-depends: >=20 > # sort -s -k5,5 ~/bulk-output-release-aarch64-ports-alt-2.txt | grep = -B4 -A3 -e "^\[12:47:[0-9][0-9]\] .*configure$" | more > [12:46:29] [14] [00:00:03] Status databases/p5-Amazon-SimpleDB | = p5-Amazon-SimpleDB-0.03_1: patch-depends > [12:46:29] [14] [00:00:03] Status databases/p5-Amazon-SimpleDB | = p5-Amazon-SimpleDB-0.03_1: patch > [12:46:29] [14] [00:00:03] Status databases/p5-Amazon-SimpleDB | = p5-Amazon-SimpleDB-0.03_1: build-depends > [12:47:42] [14] [00:01:16] Status databases/p5-Amazon-SimpleDB | = p5-Amazon-SimpleDB-0.03_1: lib-depends > [12:47:42] [14] [00:01:16] Status databases/p5-Amazon-SimpleDB | = p5-Amazon-SimpleDB-0.03_1: configure > [12:47:42] [14] [00:01:16] Status databases/p5-Amazon-SimpleDB | = p5-Amazon-SimpleDB-0.03_1: build > [12:47:42] [14] [00:01:16] Status databases/p5-Amazon-SimpleDB | = p5-Amazon-SimpleDB-0.03_1: run-depends > [12:47:42] [14] [00:01:16] Status databases/p5-Amazon-SimpleDB | = p5-Amazon-SimpleDB-0.03_1: stage > -- > [12:46:40] [13] [00:00:03] Status textproc/p5-Text-EtText | = p5-Text-EtText-2.2_2: patch-depends > [12:46:40] [13] [00:00:03] Status textproc/p5-Text-EtText | = p5-Text-EtText-2.2_2: patch > [12:46:40] [13] [00:00:03] Status textproc/p5-Text-EtText | = p5-Text-EtText-2.2_2: build-depends > [12:47:08] [13] [00:00:31] Status textproc/p5-Text-EtText | = p5-Text-EtText-2.2_2: lib-depends > [12:47:08] [13] [00:00:31] Status textproc/p5-Text-EtText | = p5-Text-EtText-2.2_2: configure > [12:47:08] [13] [00:00:31] Status textproc/p5-Text-EtText | = p5-Text-EtText-2.2_2: build > [12:47:08] [13] [00:00:31] Status textproc/p5-Text-EtText | = p5-Text-EtText-2.2_2: run-depends > [12:47:08] [13] [00:00:31] Status textproc/p5-Text-EtText | = p5-Text-EtText-2.2_2: stage > -- > [12:45:39] [03] [00:00:03] Status www/p5-Catalyst-Engine-PSGI | = p5-Catalyst-Engine-PSGI-0.14: patch-depends > [12:45:39] [03] [00:00:03] Status www/p5-Catalyst-Engine-PSGI | = p5-Catalyst-Engine-PSGI-0.14: patch > [12:45:39] [03] [00:00:03] Status www/p5-Catalyst-Engine-PSGI | = p5-Catalyst-Engine-PSGI-0.14: build-depends > [12:47:00] [03] [00:01:24] Status www/p5-Catalyst-Engine-PSGI | = p5-Catalyst-Engine-PSGI-0.14: lib-depends > [12:47:00] [03] [00:01:24] Status www/p5-Catalyst-Engine-PSGI | = p5-Catalyst-Engine-PSGI-0.14: configure > [12:47:00] [03] [00:01:24] Status www/p5-Catalyst-Engine-PSGI | = p5-Catalyst-Engine-PSGI-0.14: build > [12:47:00] [03] [00:01:24] Status www/p5-Catalyst-Engine-PSGI | = p5-Catalyst-Engine-PSGI-0.14: run-depends > [12:47:00] [03] [00:01:24] Status www/p5-Catalyst-Engine-PSGI | = p5-Catalyst-Engine-PSGI-0.14: stage > -- > [12:45:04] [09] [00:00:06] Status www/p5-Catalyst-View-XML-Simple = | p5-Catalyst-View-XML-Simple-0.01_2: patch-depends > [12:45:04] [09] [00:00:06] Status www/p5-Catalyst-View-XML-Simple = | p5-Catalyst-View-XML-Simple-0.01_2: patch > [12:45:04] [09] [00:00:06] Status www/p5-Catalyst-View-XML-Simple = | p5-Catalyst-View-XML-Simple-0.01_2: build-depends > [12:47:12] [09] [00:02:14] Status www/p5-Catalyst-View-XML-Simple = | p5-Catalyst-View-XML-Simple-0.01_2: lib-depends > [12:47:12] [09] [00:02:14] Status www/p5-Catalyst-View-XML-Simple = | p5-Catalyst-View-XML-Simple-0.01_2: configure > [12:47:12] [09] [00:02:14] Status www/p5-Catalyst-View-XML-Simple = | p5-Catalyst-View-XML-Simple-0.01_2: build > [12:47:13] [09] [00:02:15] Status www/p5-Catalyst-View-XML-Simple = | p5-Catalyst-View-XML-Simple-0.01_2: run-depends > [12:47:13] [09] [00:02:15] Status www/p5-Catalyst-View-XML-Simple = | p5-Catalyst-View-XML-Simple-0.01_2: stage > -- > [12:46:45] [08] [00:00:05] Status www/p5-MediaWiki-API | = p5-MediaWiki-API-0.52: patch-depends > [12:46:45] [08] [00:00:05] Status www/p5-MediaWiki-API | = p5-MediaWiki-API-0.52: patch > [12:46:45] [08] [00:00:05] Status www/p5-MediaWiki-API | = p5-MediaWiki-API-0.52: build-depends > [12:47:36] [08] [00:00:56] Status www/p5-MediaWiki-API | = p5-MediaWiki-API-0.52: lib-depends > [12:47:36] [08] [00:00:56] Status www/p5-MediaWiki-API | = p5-MediaWiki-API-0.52: configure > [12:47:37] [08] [00:00:57] Status www/p5-MediaWiki-API | = p5-MediaWiki-API-0.52: build > [12:47:37] [08] [00:00:57] Status www/p5-MediaWiki-API | = p5-MediaWiki-API-0.52: run-depends > [12:47:37] [08] [00:00:57] Status www/p5-MediaWiki-API | = p5-MediaWiki-API-0.52: stage > -- > [12:46:37] [12] [00:00:04] Status www/p5-WWW-DHL | = p5-WWW-DHL-0.03_2: patch-depends > [12:46:37] [12] [00:00:04] Status www/p5-WWW-DHL | = p5-WWW-DHL-0.03_2: patch > [12:46:37] [12] [00:00:04] Status www/p5-WWW-DHL | = p5-WWW-DHL-0.03_2: build-depends > [12:47:54] [12] [00:01:21] Status www/p5-WWW-DHL | = p5-WWW-DHL-0.03_2: lib-depends > [12:47:54] [12] [00:01:21] Status www/p5-WWW-DHL | = p5-WWW-DHL-0.03_2: configure > [12:47:54] [12] [00:01:21] Status www/p5-WWW-DHL | = p5-WWW-DHL-0.03_2: build > [12:47:54] [12] [00:01:21] Status www/p5-WWW-DHL | = p5-WWW-DHL-0.03_2: run-depends > [12:47:54] [12] [00:01:21] Status www/p5-WWW-DHL | = p5-WWW-DHL-0.03_2: stage >=20 >=20 > build-depends and run-depends: >=20 > # sort -s -k5,5 ~/bulk-output-release-aarch64-ports-alt-2.txt | grep = -B4 -A3 -e "^\[14:03:[0-9][0-9]\] .*configure$" | more > [14:02:47] [14] [00:00:02] Status = databases/py-flask-sqlalchemy@py311 | py311-flask-sqlalchemy-3.1.1: = patch-depends > [14:02:47] [14] [00:00:02] Status = databases/py-flask-sqlalchemy@py311 | py311-flask-sqlalchemy-3.1.1: = patch > [14:02:47] [14] [00:00:02] Status = databases/py-flask-sqlalchemy@py311 | py311-flask-sqlalchemy-3.1.1: = build-depends > [14:03:43] [14] [00:00:58] Status = databases/py-flask-sqlalchemy@py311 | py311-flask-sqlalchemy-3.1.1: = lib-depends > [14:03:43] [14] [00:00:58] Status = databases/py-flask-sqlalchemy@py311 | py311-flask-sqlalchemy-3.1.1: = configure > [14:03:43] [14] [00:00:58] Status = databases/py-flask-sqlalchemy@py311 | py311-flask-sqlalchemy-3.1.1: = build > [14:03:43] [14] [00:00:58] Status = databases/py-flask-sqlalchemy@py311 | py311-flask-sqlalchemy-3.1.1: = run-depends > [14:04:43] [14] [00:01:58] Status = databases/py-flask-sqlalchemy@py311 | py311-flask-sqlalchemy-3.1.1: = stage > -- > [14:02:22] [01] [00:00:08] Status devel/py-flask-babel@py311 | = py311-flask-babel-4.0.0_1: patch-depends > [14:02:23] [01] [00:00:09] Status devel/py-flask-babel@py311 | = py311-flask-babel-4.0.0_1: patch > [14:02:23] [01] [00:00:09] Status devel/py-flask-babel@py311 | = py311-flask-babel-4.0.0_1: build-depends > [14:03:16] [01] [00:01:02] Status devel/py-flask-babel@py311 | = py311-flask-babel-4.0.0_1: lib-depends > [14:03:16] [01] [00:01:02] Status devel/py-flask-babel@py311 | = py311-flask-babel-4.0.0_1: configure > [14:03:16] [01] [00:01:02] Status devel/py-flask-babel@py311 | = py311-flask-babel-4.0.0_1: build > [14:03:16] [01] [00:01:02] Status devel/py-flask-babel@py311 | = py311-flask-babel-4.0.0_1: run-depends > [14:03:43] [01] [00:01:29] Status devel/py-flask-babel@py311 | = py311-flask-babel-4.0.0_1: stage > -- > [14:02:51] [03] [00:00:03] Status devel/py-inline-snapshot@py311 | = py311-inline-snapshot-0.20.8: patch-depends > [14:02:51] [03] [00:00:03] Status devel/py-inline-snapshot@py311 | = py311-inline-snapshot-0.20.8: patch > [14:02:51] [03] [00:00:03] Status devel/py-inline-snapshot@py311 | = py311-inline-snapshot-0.20.8: build-depends > [14:03:43] [03] [00:00:55] Status devel/py-inline-snapshot@py311 | = py311-inline-snapshot-0.20.8: lib-depends > [14:03:43] [03] [00:00:55] Status devel/py-inline-snapshot@py311 | = py311-inline-snapshot-0.20.8: configure > [14:03:43] [03] [00:00:55] Status devel/py-inline-snapshot@py311 | = py311-inline-snapshot-0.20.8: build > [14:03:43] [03] [00:00:55] Status devel/py-inline-snapshot@py311 | = py311-inline-snapshot-0.20.8: run-depends > [14:05:07] [03] [00:02:19] Status devel/py-inline-snapshot@py311 | = py311-inline-snapshot-0.20.8: stage For comparison/contrast: (The fetch would not have to repeat.) I stopped the bulk -a an run just a -C devel/py-inline-snapshot@py311 = (no other builders, no need to rebuild dependencies): [00:00:34] [02] [00:00:00] Building devel/py-inline-snapshot@py311 | = py311-inline-snapshot-0.20.8 [00:00:34] [02] [00:00:00] Allowing MAKE_JOBS for = devel/py-inline-snapshot@py311 | py311-inline-snapshot-0.20.8 [00:00:34] [02] [00:00:00] Status devel/py-inline-snapshot@py311 | = py311-inline-snapshot-0.20.8: check-sanity [00:00:34] [02] [00:00:00] Status devel/py-inline-snapshot@py311 | = py311-inline-snapshot-0.20.8: pkg-depends [00:00:34] [02] [00:00:00] Status devel/py-inline-snapshot@py311 | = py311-inline-snapshot-0.20.8: fetch-depends [00:00:34] [02] [00:00:00] Status devel/py-inline-snapshot@py311 | = py311-inline-snapshot-0.20.8: fetch [00:00:34] [02] [00:00:00] Status devel/py-inline-snapshot@py311 | = py311-inline-snapshot-0.20.8: checksum [00:00:34] [02] [00:00:00] Status devel/py-inline-snapshot@py311 | = py311-inline-snapshot-0.20.8: extract-depends [00:00:34] [02] [00:00:00] Status devel/py-inline-snapshot@py311 | = py311-inline-snapshot-0.20.8: extract [00:00:34] [02] [00:00:00] Status devel/py-inline-snapshot@py311 | = py311-inline-snapshot-0.20.8: patch-depends [00:00:34] [02] [00:00:00] Status devel/py-inline-snapshot@py311 | = py311-inline-snapshot-0.20.8: patch [00:00:34] [02] [00:00:00] Status devel/py-inline-snapshot@py311 | = py311-inline-snapshot-0.20.8: build-depends [00:01:02] [02] [00:00:28] Status devel/py-inline-snapshot@py311 | = py311-inline-snapshot-0.20.8: lib-depends [00:01:02] [02] [00:00:28] Status devel/py-inline-snapshot@py311 | = py311-inline-snapshot-0.20.8: configure [00:01:02] [02] [00:00:28] Status devel/py-inline-snapshot@py311 | = py311-inline-snapshot-0.20.8: build [00:01:02] [02] [00:00:28] Status devel/py-inline-snapshot@py311 | = py311-inline-snapshot-0.20.8: run-depends [00:01:24] [02] [00:00:50] Status devel/py-inline-snapshot@py311 | = py311-inline-snapshot-0.20.8: stage [00:01:24] [02] [00:00:50] Status devel/py-inline-snapshot@py311 | = py311-inline-snapshot-0.20.8: package [00:01:24] [02] [00:00:50] Finished devel/py-inline-snapshot@py311 | = py311-inline-snapshot-0.20.8: Success Still a non-trivial addition to the Elapsed time if there are 10s of thousands of such packages in the ball park. > -- > [14:02:47] [02] [00:00:03] Status devel/py-xsdata-plantuml@py311 | = py311-xsdata-plantuml-24.3: patch-depends > [14:02:47] [02] [00:00:03] Status devel/py-xsdata-plantuml@py311 | = py311-xsdata-plantuml-24.3: patch > [14:02:47] [02] [00:00:03] Status devel/py-xsdata-plantuml@py311 | = py311-xsdata-plantuml-24.3: build-depends > [14:03:43] [02] [00:00:59] Status devel/py-xsdata-plantuml@py311 | = py311-xsdata-plantuml-24.3: lib-depends > [14:03:43] [02] [00:00:59] Status devel/py-xsdata-plantuml@py311 | = py311-xsdata-plantuml-24.3: configure > [14:03:43] [02] [00:00:59] Status devel/py-xsdata-plantuml@py311 | = py311-xsdata-plantuml-24.3: build > [14:03:43] [02] [00:00:59] Status devel/py-xsdata-plantuml@py311 | = py311-xsdata-plantuml-24.3: run-depends > [14:05:38] [02] [00:02:54] Status devel/py-xsdata-plantuml@py311 | = py311-xsdata-plantuml-24.3: stage > -- > [14:02:07] [10] [00:00:04] Status mail/py-flask-mail@py311 | = py311-flask-mail-0.10.0: patch-depends > [14:02:07] [10] [00:00:04] Status mail/py-flask-mail@py311 | = py311-flask-mail-0.10.0: patch > [14:02:07] [10] [00:00:04] Status mail/py-flask-mail@py311 | = py311-flask-mail-0.10.0: build-depends > [14:03:06] [10] [00:01:03] Status mail/py-flask-mail@py311 | = py311-flask-mail-0.10.0: lib-depends > [14:03:07] [10] [00:01:04] Status mail/py-flask-mail@py311 | = py311-flask-mail-0.10.0: configure > [14:03:07] [10] [00:01:04] Status mail/py-flask-mail@py311 | = py311-flask-mail-0.10.0: build > [14:03:07] [10] [00:01:04] Status mail/py-flask-mail@py311 | = py311-flask-mail-0.10.0: run-depends > [14:03:34] [10] [00:01:31] Status mail/py-flask-mail@py311 | = py311-flask-mail-0.10.0: stage > -- > [14:02:31] [06] [00:00:03] Status www/py-flask-bootstrap@py311 | = py311-Flask-Bootstrap-3.3.7.1_2: patch-depends > [14:02:31] [06] [00:00:03] Status www/py-flask-bootstrap@py311 | = py311-Flask-Bootstrap-3.3.7.1_2: patch > [14:02:31] [06] [00:00:03] Status www/py-flask-bootstrap@py311 | = py311-Flask-Bootstrap-3.3.7.1_2: build-depends > [14:03:26] [06] [00:00:58] Status www/py-flask-bootstrap@py311 | = py311-Flask-Bootstrap-3.3.7.1_2: lib-depends > [14:03:26] [06] [00:00:58] Status www/py-flask-bootstrap@py311 | = py311-Flask-Bootstrap-3.3.7.1_2: configure > [14:03:26] [06] [00:00:58] Status www/py-flask-bootstrap@py311 | = py311-Flask-Bootstrap-3.3.7.1_2: build > [14:03:26] [06] [00:00:58] Status www/py-flask-bootstrap@py311 | = py311-Flask-Bootstrap-3.3.7.1_2: run-depends > [14:03:54] [06] [00:01:26] Status www/py-flask-bootstrap@py311 | = py311-Flask-Bootstrap-3.3.7.1_2: stage > -- > [14:02:59] [13] [00:00:03] Status www/py-flask-caching@py311 | = py311-flask-caching-2.2.0_1: patch-depends > [14:02:59] [13] [00:00:03] Status www/py-flask-caching@py311 | = py311-flask-caching-2.2.0_1: patch > [14:02:59] [13] [00:00:03] Status www/py-flask-caching@py311 | = py311-flask-caching-2.2.0_1: build-depends > [14:03:27] [13] [00:00:31] Status www/py-flask-caching@py311 | = py311-flask-caching-2.2.0_1: lib-depends > [14:03:27] [13] [00:00:31] Status www/py-flask-caching@py311 | = py311-flask-caching-2.2.0_1: configure > [14:03:27] [13] [00:00:31] Status www/py-flask-caching@py311 | = py311-flask-caching-2.2.0_1: build > [14:03:27] [13] [00:00:31] Status www/py-flask-caching@py311 | = py311-flask-caching-2.2.0_1: run-depends > [14:03:54] [13] [00:00:58] Status www/py-flask-caching@py311 | = py311-flask-caching-2.2.0_1: stage > -- > [14:02:04] [08] [00:00:03] Status www/py-flask-simpleldap@py311 | = py311-Flask-SimpleLDAP-2.0.0: patch-depends > [14:02:04] [08] [00:00:03] Status www/py-flask-simpleldap@py311 | = py311-Flask-SimpleLDAP-2.0.0: patch > [14:02:04] [08] [00:00:03] Status www/py-flask-simpleldap@py311 | = py311-Flask-SimpleLDAP-2.0.0: build-depends > [14:03:00] [08] [00:00:59] Status www/py-flask-simpleldap@py311 | = py311-Flask-SimpleLDAP-2.0.0: lib-depends > [14:03:00] [08] [00:00:59] Status www/py-flask-simpleldap@py311 | = py311-Flask-SimpleLDAP-2.0.0: configure > [14:03:00] [08] [00:00:59] Status www/py-flask-simpleldap@py311 | = py311-Flask-SimpleLDAP-2.0.0: build > [14:03:00] [08] [00:00:59] Status www/py-flask-simpleldap@py311 | = py311-Flask-SimpleLDAP-2.0.0: run-depends > [14:04:24] [08] [00:02:23] Status www/py-flask-simpleldap@py311 | = py311-Flask-SimpleLDAP-2.0.0: stage > -- > [14:02:47] [05] [00:00:02] Status www/py-flask-theme@py311 | = py311-flask-theme-0.3.6_1: patch-depends > [14:02:47] [05] [00:00:02] Status www/py-flask-theme@py311 | = py311-flask-theme-0.3.6_1: patch > [14:02:47] [05] [00:00:02] Status www/py-flask-theme@py311 | = py311-flask-theme-0.3.6_1: build-depends > [14:03:15] [05] [00:00:30] Status www/py-flask-theme@py311 | = py311-flask-theme-0.3.6_1: lib-depends > [14:03:15] [05] [00:00:30] Status www/py-flask-theme@py311 | = py311-flask-theme-0.3.6_1: configure > [14:03:16] [05] [00:00:31] Status www/py-flask-theme@py311 | = py311-flask-theme-0.3.6_1: build > [14:03:16] [05] [00:00:31] Status www/py-flask-theme@py311 | = py311-flask-theme-0.3.6_1: run-depends > [14:03:43] [05] [00:00:58] Status www/py-flask-theme@py311 | = py311-flask-theme-0.3.6_1: stage >=20 >=20 > The log file also allows me to do the likes of the following to see > what and how many (package level) dependencies were involved: >=20 > # grep "\[^-]" = ~/bulk-output-release-aarch64-ports-alt-2.txt | more > [00:00:17] devel/dwarves depends on devel/argp-standalone > [00:00:17] devel/dwarves depends on devel/binutils > [00:00:17] devel/dwarves depends on devel/cmake-core > [00:00:17] devel/dwarves depends on devel/elfutils > [00:00:17] devel/dwarves depends on devel/gettext-runtime > [00:00:17] devel/dwarves depends on devel/gettext-tools > [00:00:17] devel/dwarves depends on devel/gnulib > [00:00:17] devel/dwarves depends on devel/ninja > [00:00:17] devel/dwarves depends on lang/gcc14 > [00:00:17] devel/dwarves depends on ports-mgmt/pkg > [03:50:42] [14] [00:00:00] Building devel/dwarves | dwarves-1.19_3 > [03:50:49] [14] [00:00:07] Status devel/dwarves | dwarves-1.19_3: = check-sanity > [03:50:49] [14] [00:00:07] Status devel/dwarves | dwarves-1.19_3: = pkg-depends > [03:50:51] [14] [00:00:09] Status devel/dwarves | dwarves-1.19_3: = fetch-depends > [03:50:51] [14] [00:00:09] Status devel/dwarves | dwarves-1.19_3: = fetch > [03:50:54] [14] [00:00:12] Status devel/dwarves | dwarves-1.19_3: = checksum > [03:50:55] [14] [00:00:13] Status devel/dwarves | dwarves-1.19_3: = extract-depends > [03:50:55] [14] [00:00:13] Status devel/dwarves | dwarves-1.19_3: = extract > [03:50:57] [14] [00:00:15] Status devel/dwarves | dwarves-1.19_3: = patch-depends > [03:50:57] [14] [00:00:15] Status devel/dwarves | dwarves-1.19_3: = patch > [03:50:59] [14] [00:00:17] Status devel/dwarves | dwarves-1.19_3: = build-depends > [03:52:17] [14] [00:01:35] Status devel/dwarves | dwarves-1.19_3: = lib-depends > [03:52:28] [14] [00:01:46] Status devel/dwarves | dwarves-1.19_3: = configure > [03:52:31] [14] [00:01:49] Status devel/dwarves | dwarves-1.19_3: = build > [03:52:33] [14] [00:01:51] Status devel/dwarves | dwarves-1.19_3: = run-depends > [03:52:34] [14] [00:01:52] Status devel/dwarves | dwarves-1.19_3: = stage > [03:52:35] [14] [00:01:53] Status devel/dwarves | dwarves-1.19_3: = package > [03:52:38] [14] [00:01:56] Finished devel/dwarves | dwarves-1.19_3: = Success >=20 > But it does not break out build-depends vs. lib-depends vs. = run-depends > specifics, for example. >=20 > It looks like for many of the later small package builds, those > 3 activities now make up most of the elapsed-time consequences > for those builds. >=20 > top over various time frames shows mostly the likes of: >=20 > 66921 59 root 131 0 230016Ki 179080Ki CPU5 5 0:26 = 99.56% /usr/local/sbin/pkg-static add -A = /packages/All/py311-flask-3.1.0.pkg > 66914 59 root 68 0 19536Ki 9344Ki wait 10 0:00 = 0.00% /usr/local/sbin/pkg-static add -A = /packages/All/py311-flask-3.1.0.pkg > 66804 59 root 68 0 13408Ki 3120Ki wait 10 0:00 = 0.00% /bin/sh /usr/ports/Mk/Scripts/do-depends.sh >=20 > for for build-depends, lib-depends, and run-depends for the > activity for each active builder. None of the ports are "large > build step" ones for where I happen to have sampled or when I > happened to watch with top. But: Most packages are not "large > build step" ones so this is expected much of the time. >=20 > NOTE: > The above explains the load averages being near the FreeBSD number > of cpus during periods when all the active builders were doing > such activity, as is common over many parts of the build sequence. >=20 >=20 > Other notes: >=20 > There is evidence on the build cluster results that the main-* > runs have a notably larger Elapsed time multiplier than the > 13* and 14* runs do. 13* and 14* are still substantial of > themselves. My guess is that main-* uses a debug 15000?? > kernel and possibly a debug jail-world and 13* and 14* use a > non-debug 15000?? kernel (and a non-debug jail-world). But > such details do not seem to be in public descriptive information > or published in public log files. I expect the dependency > analysis activity happens to touch Elapsed-time-consuming > debug code. May be a more selective variant of debug kernel > and/or world builds could be used instead that avoids a > notable amount of that? >=20 > It looks like having a partially pre-built bulk -a to start > from could avoid wait-time for establishing a context that > shows the Elapsed time behavior for build-depends, lib-depends, > and run-depends. >=20 > I ended up with having to restart poudriere(-devel) during my > investigations and ended up using a non-debug kernel. So the > times on the left below are from when it queued 26014 and then > inspected 7111, not from the start of the original "bulk -c -a" > on the Apple silicon M4 MAX under Parallels on macOS. =3D=3D=3D Mark Millard marklmi at yahoo.com