8000 Add advice on building all modules on Debian-like by Maroloccio · Pull Request #673 · python/devguide · GitHub
[go: up one dir, main page]

Skip to content

Add advice on building all modules on Debian-like #673

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jun 23, 2021
Merged

Add advice on building all modules on Debian-like #673

merged 1 commit into from
Jun 23, 2021

Conversation

Maroloccio
Copy link
Contributor

Current advice regarding installing dependencies is insufficient to build all optional modules:

The necessary bits to build these optional modules were not found:                                                            
_bz2                  _curses               _curses_panel
_dbm                  _gdbm                 _hashlib
_lzma                 _sqlite3              _ssl
_tkinter              _uuid                 readline
zlib                                                   
To find the necessary bits, look in setup.py in detect_modules() for the module's name. 

Some users may like the convenience of getting a head start on choosing OS packages that get them closer to a complete build.

@the-knights-who-say-ni

This comment has been minimized.

@Maroloccio
Copy link
Contributor Author

@erlend-aasland you 👍 this and the PR has been waiting for a merge for the last couple of months; what can I do to make the last step happen, please?

@terryjreedy terryjreedy requested a review from Mariatta June 22, 2021 03:09
@terryjreedy
Copy link
Member

@Mariatta Do you know linux well enough to review this addition to the linux setup part of the devguide? Or do you know who else commits devguide changes who might? (I am neither.) The idea seem straightforward, and has gotten 4 likes, but from non-committers.

Copy link
Contributor
@erlend-aasland erlend-aasland left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, but I'm not sure about the "versions you prefer" bit; CPython has version requirements for some (all?) dependencies. For example SQLite >= 3.7.15.

Copy link
Member
@zware zware left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like a good addition, but I have some quibbles :)

setup.rst Outdated
@@ -341,6 +341,14 @@ Now you can install the build dependencies via ``apt``::
If that package is not available for your system, try reducing the minor
version until you find a package that is available.

If you want to build all modules, install these packages in the versions you
prefer, changing the version name as above::
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this can be combined with the above point, as I'm pretty sure the explicit package names cover everything that would be installed by build-dep. The above point should also be updated to a more recent version (or the minor version removed entirely, and the suggestion amended to suggest adding a minor version if python3 doesn't cut it).

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have removed the minor version from the Python package for which the command installs the build dependencies.

setup.rst Outdated
Comment on lines 344 to 345
If you want to build all modules, install these packages in the versions you
prefer, changing the version name as above::
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm also not a fan of the "versions you prefer..." bit, I would suggest to trim it back to just

Suggested change
If you want to build all modules, install these packages in the versions you
prefer, changing the version name as above::
If you want to build all optional modules, install the following packages and
their dependencies::

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have accepted this suggestion entirely, merging it with the deletion of the previous paragraph.

setup.rst Outdated

$ sudo apt-get install build-essential gdb lcov libbz2-dev libffi-dev \
libgdbm-dev liblzma-dev libncurses5-dev libreadline6-dev \
libsqlite3-dev libssl-dev lzma lzma-dev tk-dev uuid-dev xvfb \
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

xvfb is not actually necessary, it would only allow you to run Tk tests on a headless machine.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have removed xvfb from the list.

@Maroloccio
Copy link
Contributor Author

Thank you @zware for your suggestions, please either Resolve the contextual exchanges or recommend further work needed on the PR.

Copy link
Contributor
@erlend-aasland erlend-aasland left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM with changes applied!

@zware zware merged commit dd6dba2 into python:master Jun 23, 2021
AA-Turner pushed a commit to AA-Turner/devguide that referenced this pull request Jun 17, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants
0