GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — Python build should check CPATH, C_INCLUDE_PATH for module dependencies · Issue #65770 · python/cpython

Python build should check CPATH, C_INCLUDE_PATH for module dependencies #65770

New issue
Copy link
New issue
Copy link
Closed as not planned
Closed as not planned
Python build should check CPATH, C_INCLUDE_PATH for module dependencies#65770
Copy link
Labels
buildThe build process and cross-buildThe build process and cross-buildpendingThe issue will be closed if no feedback is providedThe issue will be closed if no feedback is providedtype-featureA feature request or enhancementA feature request or enhancement

Description

JanKanis
mannequin
opened on May 24, 2014
Issue body actions
BPO 21571
Nosy @ronaldoussoren, @ned-deily

Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.

Show more details

GitHub fields:

assignee = None
closed_at = None
created_at = <Date 2014-05-24.21:29:37.914>
labels = ['type-feature', 'build']
title = 'Python build should check CPATH, C_INCLUDE_PATH for module dependencies'
updated_at = <Date 2015-04-03.18:23:18.970>
user = 'https://bugs.python.org/JanKanis'

bugs.python.org fields:

activity = <Date 2015-04-03.18:23:18.970>
actor = 'yesimon'
assignee = 'none'
closed = False
closed_date = None
closer = None
components = ['Build']
creation = <Date 2014-05-24.21:29:37.914>
creator = 'JanKanis'
dependencies = []
files = []
hgrepos = []
issue_num = 21571
keywords = []
message_count = 4.0
messages = ['219056', '219071', '219384', '222163']
nosy_count = 4.0
nosy_names = ['ronaldoussoren', 'ned.deily', 'JanKanis', 'yesimon']
pr_nums = []
priority = 'normal'
resolution = None
stage = None
status = 'open'
superseder = None
type = 'enhancement'
url = 'https://bugs.python.org/issue21571'
versions = ['Python 3.5']

Activity

  1. JanKanis commented on May 24, 2014

    @JanKanis
    JanKanismannequin
    on May 24, 2014
    MannequinAuthor
    More actions

    When building, pythons setup.py tries to find external sources for optional modules such as ssl, sqlite, etc. For that it searches the CFLAGS environment variable for -I options. C compilers such as gcc and clang also interpret CPATH and C_INCLUDE_PATH as extra search paths for headers/sources. Setup.py should do the same and also look in paths specified in those environment variables.

  2. JanKanis
    added
    type-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error
    buildThe build process and cross-buildThe build process and cross-build
    on May 24, 2014
  3. ned-deily commented on May 25, 2014

    @ned-deily
    ned-deily
    on May 25, 2014
    Member
    More actions

    setup.py already does that but only for builds on OS X (darwin); see http://hg.python.org/cpython/file/default/setup.py#l539. The comments there suggest to me that the code was made conditional to OS X to avoid introducing regressions in builds on other platforms. The restriction could be removed but probably only for a feature release (e.g. 3.5). Another approach that has been suggested is to add either configure options (like in bpo-21541) or environment variables (bpo-5575). In theory, the best approach might be to use the customization features provided by Modules/Setup*; unfortunately, at the moment there are some major problems with that in current Python 3.4 releases (see bpo-17095 for a proposed patch for 3.4).

  4. ned-deily
    added
    type-featureA feature request or enhancementA feature request or enhancement
    and removed
    type-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error
    on May 25, 2014
  5. ronaldoussoren commented on May 30, 2014

    @ronaldoussoren
    ronaldoussoren
    on May 30, 2014
    Contributor
    More actions

    I'm pretty sure that I wrote the code Ned refers to, and that's indeed only targeting darwin to avoid breaking other platforms. That code could easily be made actively globally though, the only reason I didn't do so at the time is we were still getting used to the fact that MacOS used the same build infrastructure as other major platforms and hence were overly cautious.

    Note that this doesn't do the same thing as Jan requests: GCC1 and clang2 can add additional directories to their header file search path using environment variables.

    For Python's setup.py file the following are important:

    • C_INCLUDE_PATH: a list of directories that are handled as if they are present at the end of the list of -isystem options (that is, system include files at a lower priority that the user provided ones)

    • CPATH: simular, but for the '-I' option

    • LIBRARY_PATH: similar, but for the '-L' option

    All of them have a syntax similar to $PATH.

    A patch to add support for these variables (and enables the handling of -I and -L for other platforms than darwin) should be easy enough, but I agree with Ned that this would be a new feature because it could break existing build systems (that is, building Python with this patch could result in a different build than without the patch due to the build picking up more or different external libraries).

    Jan: are you willing to write such a patch? And if so, are you willing to sign a contributor agreement?

  6. JanKanis commented on Jul 3, 2014

    @JanKanis
    JanKanismannequin
    on Jul 3, 2014
    MannequinAuthor
    More actions

    I can write a patch. I haven't signed a contributor agreement but I have no problem doing so. I am not sure when I will have time to write a patch though, so it could take some time.

  7. ezio-melotti
    transferred this issue fromon Apr 10, 2022
  8. serhiy-storchaka commented on Dec 26, 2023

    @serhiy-storchaka
    serhiy-storchaka
    on Dec 26, 2023
    Member
    More actions

    setup.py no longer used to build CPython since 3.12 (see #94474).

    Reacted by Erlend E. Aasland
  9. erlend-aasland
    added
    pendingThe issue will be closed if no feedback is providedThe issue will be closed if no feedback is provided
    on Dec 27, 2023
  10. hugovk
    closed this as not plannedon Mar 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    buildThe build process and cross-buildThe build process and cross-buildpendingThe issue will be closed if no feedback is providedThe issue will be closed if no feedback is providedtype-featureA feature request or enhancementA feature request or enhancement

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      You are visitor 01402503 — GeezerVison does not store the pages you look up.
      Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.