tech-pkg archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: dependency cycle on systems without GNU grep in base



On Sun, Nov 01, 2026 at 08:42:55AM +0100, Thomas Klausner wrote:
> Hi!
> 
> The default change for Python 3.13 to 3.14 uncovered a dependency loop
> when building Python 3.14 on systems that do not have GNU grep as
> default grep.
> 
> From the SmartOS bulk builds:
> 
> Scan Failures
> ----------------------------------------------------------------------------
> devel/gettext-tools  Circular dependency: gettext-tools-1.0 -> python314-3.14.10 -> zstd-1.5.7 -> grep-3.12nb4 -> gettext-tools-1.0
> textproc/grep        Circular dependency: grep-3.12nb4 -> gettext-tools-1.0 -> python314-3.14.10 -> zstd-1.5.7 -> grep-3.12nb4
> devel/gtexinfo       Circular dependency: gtexinfo-7.3 -> help2man-1.49.3 -> gettext-tools-1.0 -> python314-3.14.10 -> zstd-1.5.7 -> grep-3.12nb4 -> gtexinfo-7.3
> converters/help2man  Circular dependency: help2man-1.49.3 -> gettext-tools-1.0 -> python314-3.14.10 -> zstd-1.5.7 -> grep-3.12nb4 -> gtexinfo-7.3 -> help2man-1.49.3
> lang/python314       Circular dependency: python314-3.14.10 -> zstd-1.5.7 -> grep-3.12nb4 -> gettext-tools-1.0 -> python314-3.14.10
> archivers/zstd       Circular dependency: zstd-1.5.7 -> grep-3.12nb4 -> gettext-tools-1.0 -> python314-3.14.10 -> zstd-1.5.7
> 
> I see two relatively easy ways to break the cycle:
> 
> - turn off the GNU grep nls option by default (getting rid of the
>   gettext-tools dependency in grep)
> 
> - split off zstdgrep (a grep for compressed .zst files, similar to
>   zgrep for .gz) from zstd, making it a separate package that Python
>   does not depend on, and let only the zstdgrep package depend on GNU
>   grep
> 
> I tend to the second option.
> 
> Opinions?


I got positive feedback on option 2 and have implemented it.

Cheers,
 Thomas


Home | Main Index | Thread Index | Old Index