Opened 16 months ago

Closed 10 months ago

Last modified 8 months ago

#21688 closed enhancement (overcomebyevents)

Add --use-pep517 --no-build-isolation for (some of??) the Python modules and dependencies

Reported by: Xi Ruoyao Owned by: blfs-book
Priority: normal Milestone: 13.0
Component: BOOK Version: git
Severity: medium Keywords:
Cc:

Description (last modified by Xi Ruoyao)

When building asciidoc on the latest LFS development:

$ pip3 wheel -w dist --no-cache-dir --no-build-isolation --no-deps $PWD  
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Processing /home/xry111/sources/12.4/asciidoc-10.2.1
  Preparing metadata (setup.py) ... done
Building wheels for collected packages: asciidoc
  DEPRECATION: Building 'asciidoc' using the legacy setup.py bdist_wheel mechanism, which will be removed in a future version. pip 25.3 will enforce this behaviour change. A possible replacement is to use the standardized build interface by setting the `--use-pep517` option, (possibly combined with `--no-build-isolation`), or adding a `pyproject.toml` file to the source tree of 'asciidoc'. Discussion can be found at https://github.com/pypa/pip/issues/6334
  Building wheel for asciidoc (setup.py) ... done
  Created wheel for asciidoc: filename=asciidoc-10.2.1-py3-none-any.whl size=272494 sha256=880e3bb7c56b57a2bd83851cbc74d49711a49f6b93611e1dca823b7aa0d18213
  Stored in directory: /tmp/pip-ephem-wheel-cache-ukgr9wju/wheels/72/11/a1/31bb9f2ae501411557fe224285b5c0d85d6079a3a510ce6f94
Successfully built asciidoc

AFAIK without --no-build-isolation the build system may attempt to download some wheels, thus we should need it with --use-pep517.

Change History (15)

comment:1 by Xi Ruoyao, 16 months ago

Description: modified (diff)

comment:2 by Bruce Dubbs, 16 months ago

According to the documentation:

--no-build-isolation   Disable isolation when building a modern source 
                       distribution. Build dependencies specified by 
                       PEP 518 must be already installed if this
                       option is used.

It seems to me that it is upstream's responsibility to change away from deprecated methods. As long at it builds, then we need not do anything. The only reason to use --use-pep517 is if the build fails without it.

comment:3 by Xi Ruoyao, 16 months ago

Based on the prior (unpleasant) experiences the upstream of Python modules often doesn't care about deprecation warning at all, thus eventually we'll hit build failures when the old method is removed. So IMO it's better to just add --use-pep517 --no-build-isolation to move away from the deprecated method if it works.

comment:4 by Bruce Dubbs, 16 months ago

Resolution: → wontfix
Status: new → closed

We will wait until the packages break, but will be watchful for this type of problem when new versions of pip3 are released. When the packages FTBFS we will need to open a new ticket.

comment:5 by Xi Ruoyao, 16 months ago

Milestone: 12.4 → 99-Waiting
Priority: normal → lowest
Resolution: wontfix
Status: closed → reopened

I'm keeping this open at lowest priority to maintain a list of known-to-be-problematic modules here:

  • asciidoc (10.2.1)
  • Cython (3.1.2)
Last edited 16 months ago by Xi Ruoyao (previous) (diff)

comment:6 by Joe Locash, 16 months ago

Here are some others:

  • six (1.17.0)
  • sphinxcontrib-jsmath (1.0.1)
  • snowballstemmer (3.0.1) : book version is 2.2.0
  • pytz (2025.2) : book version is 2025.1
  • imagesize (1.4.1)
  • certifi (2025.4.26) : book version is 2025.1.31
  • pyxdg (0.28)
  • ply (3.11)

comment:7 by Douglas R. Reno, 10 months ago

This is unfortunately now a real problem. Python 3.14.1 bundles pip-25.3, which has removed the legacy method. We will now need to fix these packages.

comment:8 by Douglas R. Reno, 10 months ago

Milestone: 99-Waiting → 12.5
Priority: lowest → normal

comment:9 by Bruce Dubbs, 10 months ago

My current plan is to update to Python 3.14.1 on December 14th so the book would be built on rivendell early in the 15th.

After that we probably need to test all the modules and update as needed. :(

comment:10 by Joe Locash, 10 months ago

I did a full build last night with 3.14.1 and didn't have any problems so I don't think this will be all that bad.

comment:11 by Bruce Dubbs, 10 months ago

Summary: Add --use-pep517 --no-build-isolation for (some of??) the Python modules and dependencies → Add --use-pep517 --no-build-isolation for (some of??) the Python modules and dependencies (Wait for Python-3.14.1)

comment:12 by martyj19, 10 months ago

Python 3.14.2 is latest due to some regressions in 3.14.1.

in reply to:  12 comment:13 by Bruce Dubbs, 10 months ago

Summary: Add --use-pep517 --no-build-isolation for (some of??) the Python modules and dependencies (Wait for Python-3.14.1) → Add --use-pep517 --no-build-isolation for (some of??) the Python modules and dependencies

Replying to martyj19:

Python 3.14.2 is latest due to some regressions in 3.14.1.

Thanks Marty. It's interesting that the page ​https://www.python.org/downloads/source/ lists:

Latest Python 3 Release - Python 3.14.2
...

Stable Releases
...
Python 3.14.1 - Dec. 2, 2025

comment:14 by Bruce Dubbs, 10 months ago

Resolution: → overcomebyevents
Status: reopened → closed

After installing Python-3.14.2, none of the packages that were identified showed any build issues. Closing as overcome by events.

comment:15 by Bruce Dubbs, 8 months ago

Milestone: 12.5 → 13.0

Milestone renamed

Note: See TracTickets for help on using tickets.