diff --git a/Mac/Makefile.in b/Mac/Makefile.in index 32e3a0f55c5d71..98d5ce2d2ff0b0 100644 --- a/Mac/Makefile.in +++ b/Mac/Makefile.in @@ -63,29 +63,19 @@ installunixtools: fi cd "$(DESTDIR)$(FRAMEWORKUNIXTOOLSPREFIX)/bin" && \ for fn in \ - idle3 \ - pydoc3 \ - python3 \ - python3-config \ + idle3$(ABIFLAGS) \ + pydoc3$(ABIFLAGS) \ + python3$(ABIFLAGS) \ + python3$(ABIFLAGS)-config \ ; \ do \ rm -f $${fn} ; \ $(LN) -s $(BINDIR)/$${fn} $${fn} ;\ done - -if test "x$(VERSION)" != "x$(LDVERSION)"; then \ - cd "$(DESTDIR)$(FRAMEWORKUNIXTOOLSPREFIX)/bin" && \ - for fn in \ - python$(VERSION)-config \ - ; \ - do \ - rm -f $${fn} ;\ - $(LN) -s $(BINDIR)/$${fn} $${fn} ;\ - done ;\ - fi -if test "x$(LIPO_32BIT_FLAGS)" != "x"; then \ cd "$(DESTDIR)$(FRAMEWORKUNIXTOOLSPREFIX)/bin" && \ for fn in \ - python3-32 \ + python3-32$(ABIFLAGS) \ ; \ do \ rm -f $${fn} ;\ @@ -95,7 +85,7 @@ installunixtools: -if test "x$(LIPO_INTEL64_FLAGS)" != "x"; then \ cd "$(DESTDIR)$(FRAMEWORKUNIXTOOLSPREFIX)/bin" && \ for fn in \ - python3-intel64 \ + python3-intel64$(ABIFLAGS) \ ; \ do \ rm -f $${fn} ;\ @@ -108,8 +98,13 @@ installunixtools: pip3 \ ; \ do \ - rm -f $${fn} ;\ - $(LN) -s $(BINDIR)/$${fn} $${fn} ;\ + if test "x$(VERSION)" != "x$(LDVERSION)"; then \ + rm -f $${fn}$(ABIFLAGS) ;\ + $(LN) -s $(BINDIR)/$${fn} $${fn}$(ABIFLAGS) ;\ + else \ + rm -f $${fn} ;\ + $(LN) -s $(BINDIR)/$${fn} ;\ + fi ;\ done ;\ fi @@ -122,29 +117,19 @@ altinstallunixtools: fi cd "$(DESTDIR)$(FRAMEWORKUNIXTOOLSPREFIX)/bin" && \ for fn in \ - idle$(VERSION) \ - pydoc$(VERSION) \ - python$(VERSION) \ + idle$(LDVERSION) \ + pydoc$(LDVERSION) \ + python$(LDVERSION) \ python$(LDVERSION)-config \ ; \ do \ rm -f $${fn} ;\ $(LN) -s $(BINDIR)/$${fn} $${fn} ;\ done - -if test "x$(VERSION)" != "x$(LDVERSION)"; then \ - cd "$(DESTDIR)$(FRAMEWORKUNIXTOOLSPREFIX)/bin" && \ - for fn in \ - python$(LDVERSION) \ - ; \ - do \ - rm -f $${fn} ;\ - $(LN) -s $(BINDIR)/$${fn} $${fn} ;\ - done ;\ - fi -if test "x$(LIPO_32BIT_FLAGS)" != "x"; then \ cd "$(DESTDIR)$(FRAMEWORKUNIXTOOLSPREFIX)/bin" && \ for fn in \ - python$(VERSION)-32 \ + python$(LDVERSION)-32 \ ; \ do \ rm -f $${fn} ;\ @@ -154,7 +139,7 @@ altinstallunixtools: -if test "x$(LIPO_INTEL64_FLAGS)" != "x"; then \ cd "$(DESTDIR)$(FRAMEWORKUNIXTOOLSPREFIX)/bin" && \ for fn in \ - python$(VERSION)-intel64 \ + python$(LDVERSION)-intel64 \ ; \ do \ rm -f $${fn} ;\ @@ -164,11 +149,16 @@ altinstallunixtools: -if test "x$(ENSUREPIP)" != "xno" ; then \ cd "$(DESTDIR)$(FRAMEWORKUNIXTOOLSPREFIX)/bin" && \ for fn in \ - pip$(VERSION) \ + pip \ ; \ do \ - rm -f $${fn} ;\ - $(LN) -s $(BINDIR)/$${fn} $${fn} ;\ + if test "x$(VERSION)" != "x$(LDVERSION)"; then \ + rm -f $${fn}$(LDVERSION) ;\ + $(LN) -s $(BINDIR)/$${fn}$(VERSION) $${fn}$(LDVERSION) ;\ + else \ + rm -f $${fn}$(VERSION) ;\ + $(LN) -s $(BINDIR)/$${fn}$(VERSION) $${fn}$(VERSION) ;\ + fi ;\ done ;\ fi diff --git a/Makefile.pre.in b/Makefile.pre.in index 5608e593ac9aca..575fe6e167dbca 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -2213,7 +2213,9 @@ altbininstall: $(BUILDPYTHON) @FRAMEWORKPYTHONW@ else \ $(INSTALL_PROGRAM) $(STRIPFLAG) Mac/pythonw $(DESTDIR)$(BINDIR)/python$(LDVERSION)$(EXE); \ fi - -if test "$(VERSION)" != "$(LDVERSION)"; then \ + # For framework installs, the unsuffixed binary file name is currently + # needed for getpath.py setting of sys._base_executable for venv's + -if test "$(VERSION)" != "$(LDVERSION)" && test "$(PYTHONFRAMEWORKDIR)" != "no-framework"; then \ if test -f $(DESTDIR)$(BINDIR)/python$(VERSION)$(EXE) -o -h $(DESTDIR)$(BINDIR)/python$(VERSION)$(EXE); \ then rm -f $(DESTDIR)$(BINDIR)/python$(VERSION)$(EXE); \ fi; \ @@ -2236,16 +2238,16 @@ altbininstall: $(BUILDPYTHON) @FRAMEWORKPYTHONW@ fi; \ fi if test "x$(LIPO_32BIT_FLAGS)" != "x" ; then \ - rm -f $(DESTDIR)$(BINDIR)/python$(VERSION)-32$(EXE); \ + rm -f $(DESTDIR)$(BINDIR)/python$(LDVERSION)-32$(EXE); \ lipo $(LIPO_32BIT_FLAGS) \ - -output $(DESTDIR)$(BINDIR)/python$(VERSION)-32$(EXE) \ - $(DESTDIR)$(BINDIR)/python$(VERSION)$(EXE); \ + -output $(DESTDIR)$(BINDIR)/python$(LDVERSION)-32$(EXE) \ + $(DESTDIR)$(BINDIR)/python$(LDVERSION)$(EXE); \ fi if test "x$(LIPO_INTEL64_FLAGS)" != "x" ; then \ - rm -f $(DESTDIR)$(BINDIR)/python$(VERSION)-intel64$(EXE); \ + rm -f $(DESTDIR)$(BINDIR)/python$(LDVERSION)-intel64$(EXE); \ lipo $(LIPO_INTEL64_FLAGS) \ - -output $(DESTDIR)$(BINDIR)/python$(VERSION)-intel64$(EXE) \ - $(DESTDIR)$(BINDIR)/python$(VERSION)$(EXE); \ + -output $(DESTDIR)$(BINDIR)/python$(LDVERSION)-intel64$(EXE) \ + $(DESTDIR)$(BINDIR)/python$(LDVERSION)$(EXE); \ fi # Install macOS debug information (if available) if test -d "$(BUILDPYTHON).dSYM"; then \ @@ -2270,40 +2272,25 @@ altbininstall: $(BUILDPYTHON) @FRAMEWORKPYTHONW@ # problems for anything else trying to run 'python3' while we install, particularly # if we're installing in parallel with -j. bininstall: commoninstall altbininstall - if test ! -d $(DESTDIR)$(LIBPC); then \ - echo "Creating directory $(LIBPC)"; \ - $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$(LIBPC); \ - fi - -if test -f $(DESTDIR)$(BINDIR)/python3$(EXE) -o -h $(DESTDIR)$(BINDIR)/python3$(EXE); \ - then rm -f $(DESTDIR)$(BINDIR)/python3$(EXE); \ - else true; \ - fi - (cd $(DESTDIR)$(BINDIR); $(LN) -s python$(VERSION)$(EXE) python3$(EXE)) - -if test "$(VERSION)" != "$(LDVERSION)"; then \ - rm -f $(DESTDIR)$(BINDIR)/python$(VERSION)-config; \ - (cd $(DESTDIR)$(BINDIR); $(LN) -s python$(LDVERSION)-config python$(VERSION)-config); \ - rm -f $(DESTDIR)$(LIBPC)/python-$(VERSION).pc; \ - (cd $(DESTDIR)$(LIBPC); $(LN) -s python-$(LDVERSION).pc python-$(VERSION).pc); \ - rm -f $(DESTDIR)$(LIBPC)/python-$(VERSION)-embed.pc; \ - (cd $(DESTDIR)$(LIBPC); $(LN) -s python-$(LDVERSION)-embed.pc python-$(VERSION)-embed.pc); \ - fi - -rm -f $(DESTDIR)$(BINDIR)/python3-config - (cd $(DESTDIR)$(BINDIR); $(LN) -s python$(VERSION)-config python3-config) - -rm -f $(DESTDIR)$(LIBPC)/python3.pc - (cd $(DESTDIR)$(LIBPC); $(LN) -s python-$(VERSION).pc python3.pc) - -rm -f $(DESTDIR)$(LIBPC)/python3-embed.pc - (cd $(DESTDIR)$(LIBPC); $(LN) -s python-$(VERSION)-embed.pc python3-embed.pc) - -rm -f $(DESTDIR)$(BINDIR)/idle3 - (cd $(DESTDIR)$(BINDIR); $(LN) -s idle$(VERSION) idle3) - -rm -f $(DESTDIR)$(BINDIR)/pydoc3 - (cd $(DESTDIR)$(BINDIR); $(LN) -s pydoc$(VERSION) pydoc3) + -rm -f $(DESTDIR)$(BINDIR)/python3$(ABIFLAGS)$(EXE) + (cd $(DESTDIR)$(BINDIR); $(LN) -s python$(LDVERSION)$(EXE) python3$(ABIFLAGS)$(EXE)) + -rm -f $(DESTDIR)$(BINDIR)/python3$(ABIFLAGS)-config + (cd $(DESTDIR)$(BINDIR); $(LN) -s python$(LDVERSION)-config python3$(ABIFLAGS)-config) + -rm -f $(DESTDIR)$(LIBPC)/python3$(ABIFLAGS).pc + (cd $(DESTDIR)$(LIBPC); $(LN) -s python-$(LDVERSION).pc python3$(ABIFLAGS).pc) + -rm -f $(DESTDIR)$(LIBPC)/python3$(ABIFLAGS)-embed.pc + (cd $(DESTDIR)$(LIBPC); $(LN) -s python-$(LDVERSION)-embed.pc python3$(ABIFLAGS)-embed.pc) + -rm -f $(DESTDIR)$(BINDIR)/idle3$(ABIFLAGS) + (cd $(DESTDIR)$(BINDIR); $(LN) -s idle$(LDVERSION) idle3$(ABIFLAGS)) + -rm -f $(DESTDIR)$(BINDIR)/pydoc3$(ABIFLAGS) + (cd $(DESTDIR)$(BINDIR); $(LN) -s pydoc$(LDVERSION) pydoc3$(ABIFLAGS)) if test "x$(LIPO_32BIT_FLAGS)" != "x" ; then \ - rm -f $(DESTDIR)$(BINDIR)/python3-32$(EXE); \ - (cd $(DESTDIR)$(BINDIR); $(LN) -s python$(VERSION)-32$(EXE) python3-32$(EXE)) \ + rm -f $(DESTDIR)$(BINDIR)/python3$(ABIFLAGS)-32$(EXE); \ + (cd $(DESTDIR)$(BINDIR); $(LN) -s python$(LDVERSION)-32$(EXE) python3$(ABIFLAGS)-32$(EXE)) \ fi if test "x$(LIPO_INTEL64_FLAGS)" != "x" ; then \ - rm -f $(DESTDIR)$(BINDIR)/python3-intel64$(EXE); \ - (cd $(DESTDIR)$(BINDIR); $(LN) -s python$(VERSION)-intel64$(EXE) python3-intel64$(EXE)) \ + rm -f $(DESTDIR)$(BINDIR)/python3$(ABIFLAGS)-intel64$(EXE); \ + (cd $(DESTDIR)$(BINDIR); $(LN) -s python$(LDVERSION)-intel64$(EXE) python3$(ABIFLAGS)-intel64$(EXE)) \ fi # Install the versioned manual page @@ -2738,8 +2725,8 @@ libainstall: all scripts $(INSTALL_SCRIPT) $(srcdir)/install-sh $(DESTDIR)$(LIBPL)/install-sh $(INSTALL_SCRIPT) python-config.py $(DESTDIR)$(LIBPL)/python-config.py $(INSTALL_SCRIPT) python-config $(DESTDIR)$(BINDIR)/python$(LDVERSION)-config - $(INSTALL_SCRIPT) $(SCRIPT_IDLE) $(DESTDIR)$(BINDIR)/idle$(VERSION) - $(INSTALL_SCRIPT) $(SCRIPT_PYDOC) $(DESTDIR)$(BINDIR)/pydoc$(VERSION) + $(INSTALL_SCRIPT) $(SCRIPT_IDLE) $(DESTDIR)$(BINDIR)/idle$(LDVERSION) + $(INSTALL_SCRIPT) $(SCRIPT_PYDOC) $(DESTDIR)$(BINDIR)/pydoc$(LDVERSION) @if [ -s Modules/python.exp -a \ "`echo $(MACHDEP) | sed 's/^\(...\).*/\1/'`" = "aix" ]; then \ echo; echo "Installing support files for building shared extension modules on AIX:"; \ diff --git a/Misc/NEWS.d/next/Build/2024-07-29-11-04-06.gh-issue-122402.HZAQXX.rst b/Misc/NEWS.d/next/Build/2024-07-29-11-04-06.gh-issue-122402.HZAQXX.rst new file mode 100644 index 00000000000000..5dde70ae6a21c8 --- /dev/null +++ b/Misc/NEWS.d/next/Build/2024-07-29-11-04-06.gh-issue-122402.HZAQXX.rst @@ -0,0 +1 @@ +Eliminate conflicts between build variants installed to a common prefix.