]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-32430: Rename Modules/Setup.dist to Modules/Setup (GH-8229)
authorAntoine Pitrou <pitrou@free.fr>
Mon, 16 Jul 2018 17:03:03 +0000 (19:03 +0200)
committerGitHub <noreply@github.com>
Mon, 16 Jul 2018 17:03:03 +0000 (19:03 +0200)
bpo-32430: Rename Modules/Setup.dist to Modules/Setup

Remove the necessity to copy the former manually to the latter when updating the local source tree.

Doc/whatsnew/3.8.rst
Lib/distutils/sysconfig.py
Lib/sysconfig.py
Makefile.pre.in
Misc/NEWS.d/next/Build/2018-07-10-21-33-25.bpo-32430.UN3Nk8.rst [new file with mode: 0644]
Modules/Setup [moved from Modules/Setup.dist with 97% similarity]
Modules/getpath.c
Modules/makesetup
aclocal.m4
configure
configure.ac

index ace814e577f1deb4d9bbc4e9b2d8d118c571ea49..c6ecebc746fe4853d7904491f96b16b4234b024d 100644 (file)
@@ -139,6 +139,21 @@ Build and C API Changes
   ``const char *`` rather of ``char *``.
   (Contributed by Serhiy Storchaka in :issue:`33818`.)
 
+* The duality of ``Modules/Setup.dist`` and ``Modules/Setup`` has been
+  removed.  Previously, when updating the CPython source tree, one had
+  to manually copy ``Modules/Setup.dist`` (inside the source tree) to
+  ``Modules/Setup`` (inside the build tree) in order to reflect any changes
+  upstream.  This was of a small benefit to packagers at the expense of
+  a frequent annoyance to developers following CPython development, as
+  forgetting to copy the file could produce build failures.
+
+  Now the build system always reads from ``Modules/Setup`` inside the source
+  tree.  People who want to customize that file are encouraged to maintain
+  their changes in a git fork of CPython or as patch files, as they would do
+  for any other change to the source tree.
+
+  (Contributed by Antoine Pitrou in :issue:`32430`.)
+
 
 Deprecated
 ==========
index e07a6c8b94ec79a7f1bf82beb61651c7dab2c65b..b433fc86ffccd788975db4d4eb0800861bad8a2b 100644 (file)
@@ -36,10 +36,8 @@ if (os.name == 'nt' and
 # python_build: (Boolean) if true, we're either building Python or
 # building an extension with an un-installed Python, so we use
 # different (hard-wired) directories.
-# Setup.local is available for Makefile builds including VPATH builds,
-# Setup.dist is available on Windows
 def _is_python_source_dir(d):
-    for fn in ("Setup.dist", "Setup.local"):
+    for fn in ("Setup", "Setup.local"):
         if os.path.isfile(os.path.join(d, "Modules", fn)):
             return True
     return False
index 9ee4d3185a71276137a39481244846453a12f262..e0f9c18531b674483faacc58078f597daf8bb08a 100644 (file)
@@ -119,7 +119,7 @@ if "_PYTHON_PROJECT_BASE" in os.environ:
     _PROJECT_BASE = _safe_realpath(os.environ["_PYTHON_PROJECT_BASE"])
 
 def _is_python_source_dir(d):
-    for fn in ("Setup.dist", "Setup.local"):
+    for fn in ("Setup", "Setup.local"):
         if os.path.isfile(os.path.join(d, "Modules", fn)):
             return True
     return False
index 0ed2cdf079a43a8c28d4f2c4ea0213728ae7458b..51cf2fdb009b7b4702ce3660fcfa0cbe58aae885 100644 (file)
@@ -687,26 +687,16 @@ oldsharedmods: $(SHAREDMODS)
 Makefile Modules/config.c: Makefile.pre \
                                $(srcdir)/Modules/config.c.in \
                                $(MAKESETUP) \
-                               Modules/Setup \
+                               $(srcdir)/Modules/Setup \
                                Modules/Setup.local
        $(SHELL) $(MAKESETUP) -c $(srcdir)/Modules/config.c.in \
                                -s Modules \
                                Modules/Setup.local \
-                               Modules/Setup
+                               $(srcdir)/Modules/Setup
        @mv config.c Modules
        @echo "The Makefile was updated, you may need to re-run make."
 
 
-Modules/Setup: $(srcdir)/Modules/Setup.dist
-       @if test -f Modules/Setup; then \
-               echo "-----------------------------------------------"; \
-               echo "Modules/Setup.dist is newer than Modules/Setup;"; \
-               echo "check to make sure you have all the updates you"; \
-               echo "need in your Modules/Setup file."; \
-               echo "Usually, copying Modules/Setup.dist to Modules/Setup will work."; \
-               echo "-----------------------------------------------"; \
-       fi
-
 Programs/_testembed: Programs/_testembed.o $(LIBRARY) $(LDLIBRARY) $(PY3LIBRARY)
        $(LINKCC) $(PY_LDFLAGS) $(LINKFORSHARED) -o $@ Programs/_testembed.o $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST)
 
@@ -1478,7 +1468,7 @@ libainstall:      @DEF_MAKE_RULE@ python-config
        $(INSTALL_DATA) Programs/python.o $(DESTDIR)$(LIBPL)/python.o
        $(INSTALL_DATA) $(srcdir)/Modules/config.c.in $(DESTDIR)$(LIBPL)/config.c.in
        $(INSTALL_DATA) Makefile $(DESTDIR)$(LIBPL)/Makefile
-       $(INSTALL_DATA) Modules/Setup $(DESTDIR)$(LIBPL)/Setup
+       $(INSTALL_DATA) $(srcdir)/Modules/Setup $(DESTDIR)$(LIBPL)/Setup
        $(INSTALL_DATA) Modules/Setup.local $(DESTDIR)$(LIBPL)/Setup.local
        $(INSTALL_DATA) Misc/python.pc $(DESTDIR)$(LIBPC)/python-$(VERSION).pc
        $(INSTALL_SCRIPT) $(srcdir)/Modules/makesetup $(DESTDIR)$(LIBPL)/makesetup
@@ -1701,8 +1691,7 @@ distclean: clobber
        for file in $(srcdir)/Lib/test/data/* ; do \
            if test "$$file" != "$(srcdir)/Lib/test/data/README"; then rm "$$file"; fi; \
        done
-       -rm -f core Makefile Makefile.pre config.status \
-               Modules/Setup Modules/Setup.local \
+       -rm -f core Makefile Makefile.pre config.status Modules/Setup.local \
                Modules/ld_so_aix Modules/python.exp Misc/python.pc \
                Misc/python-config.sh
        -rm -f python*-gdb.py
diff --git a/Misc/NEWS.d/next/Build/2018-07-10-21-33-25.bpo-32430.UN3Nk8.rst b/Misc/NEWS.d/next/Build/2018-07-10-21-33-25.bpo-32430.UN3Nk8.rst
new file mode 100644 (file)
index 0000000..446c5a1
--- /dev/null
@@ -0,0 +1,2 @@
+Rename Modules/Setup.dist to Modules/Setup, and remove the necessity to copy
+the former manually to the latter when updating the local source tree.
similarity index 97%
rename from Modules/Setup.dist
rename to Modules/Setup
index da2404a44a269f3eea1eadbafbfe9c207f3ea87d..e791c8cf8ac696c287ce00ca989b69d97e910a6b 100644 (file)
@@ -1,14 +1,11 @@
 # -*- makefile -*-
 # The file Setup is used by the makesetup script to construct the files
 # Makefile and config.c, from Makefile.pre and config.c.in,
-# respectively.  The file Setup itself is initially copied from
-# Setup.dist; once it exists it will not be overwritten, so you can edit
-# Setup to your heart's content.  Note that Makefile.pre is created
-# from Makefile.pre.in by the toplevel configure script.
+# respectively.  Note that Makefile.pre is created from Makefile.pre.in
+# by the toplevel configure script.
 
 # (VPATH notes: Setup and Makefile.pre are in the build directory, as
-# are Makefile and config.c; the *.in and *.dist files are in the source
-# directory.)
+# are Makefile and config.c; the *.in files are in the source directory.)
 
 # Each line in this file describes one or more optional modules.
 # Modules configured here will not be compiled by the setup.py script,
index e6a3e8e78cd3ee83321e7f72196dc5faf1798f11..755298eb4b78ca390fc759cea7ab579f1358fac9 100644 (file)
@@ -322,7 +322,7 @@ search_for_prefix(const _PyCoreConfig *core_config,
     /* Check to see if argv[0] is in the build directory */
     wcsncpy(prefix, calculate->argv0_path, MAXPATHLEN);
     prefix[MAXPATHLEN] = L'\0';
-    joinpath(prefix, L"Modules/Setup");
+    joinpath(prefix, L"Modules/Setup.local");
     if (isfile(prefix)) {
         /* Check VPATH to see if argv0_path is in the build directory. */
         vpath = Py_DecodeLocale(VPATH, NULL);
index 020b19938c48663decedefe765f56a2783cbf220..c7b0a60400cf29e06b2621e9b29417aeeec7c27f 100755 (executable)
@@ -17,7 +17,7 @@
 # Setup files after a -n option are used for their variables, modules
 # and libraries but not for their .o files.
 #
-# See Setup.dist for a description of the format of the Setup file.
+# See Setup for a description of the format of the Setup file.
 #
 # The following edits are made:
 #
index 6a24d8e6b9c00eed18ee375c91af08e971a5c776..69205776ed4c960873f9d6868cddd30aecb7e2d9 100644 (file)
@@ -1,6 +1,6 @@
-# generated automatically by aclocal 1.15.1 -*- Autoconf -*-
+# generated automatically by aclocal 1.15 -*- Autoconf -*-
 
-# Copyright (C) 1996-2017 Free Software Foundation, Inc.
+# Copyright (C) 1996-2014 Free Software Foundation, Inc.
 
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
index a44676dfb4144240083788db6efd243e22a58a6c..c5ea5cbc75665c1b30ff5e5fa9e7b1b517c5c061 100755 (executable)
--- a/configure
+++ b/configure
@@ -18339,12 +18339,6 @@ $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
 fi
 
 
-echo "creating Modules/Setup" >&6
-if test ! -f Modules/Setup
-then
-       cp $srcdir/Modules/Setup.dist Modules/Setup
-fi
-
 echo "creating Modules/Setup.local" >&6
 if test ! -f Modules/Setup.local
 then
@@ -18354,7 +18348,7 @@ fi
 echo "creating Makefile" >&6
 $SHELL $srcdir/Modules/makesetup -c $srcdir/Modules/config.c.in \
                        -s Modules \
-                       Modules/Setup.local Modules/Setup
+                       Modules/Setup.local $srcdir/Modules/Setup
 mv config.c Modules
 
 if test "$Py_OPT" = 'false' -a "$Py_DEBUG" != 'true'; then
index f33fd517cbbe2e1adb86472980bad23c047b4f70..4161523f9d8508f4253454bcdb27de8c66f3a777 100644 (file)
@@ -5547,12 +5547,6 @@ AC_CONFIG_FILES(Makefile.pre Misc/python.pc Misc/python-config.sh)
 AC_CONFIG_FILES([Modules/ld_so_aix], [chmod +x Modules/ld_so_aix])
 AC_OUTPUT
 
-echo "creating Modules/Setup" >&AS_MESSAGE_FD
-if test ! -f Modules/Setup
-then
-       cp $srcdir/Modules/Setup.dist Modules/Setup
-fi
-
 echo "creating Modules/Setup.local" >&AS_MESSAGE_FD
 if test ! -f Modules/Setup.local
 then
@@ -5562,7 +5556,7 @@ fi
 echo "creating Makefile" >&AS_MESSAGE_FD
 $SHELL $srcdir/Modules/makesetup -c $srcdir/Modules/config.c.in \
                        -s Modules \
-                       Modules/Setup.local Modules/Setup
+                       Modules/Setup.local $srcdir/Modules/Setup
 mv config.c Modules
 
 if test "$Py_OPT" = 'false' -a "$Py_DEBUG" != 'true'; then