From 8edda307af5403a111509f55fe809cd7b3bdf47a Mon Sep 17 00:00:00 2001 From: Olivia Crain Date: Thu, 31 Mar 2022 13:39:15 -0700 Subject: [PATCH 1/4] python3: Add python-unversioned-command subpackage with /usr/bin/python symlink --- SPECS/python3/python3.spec | 21 +++++++++++++++++-- .../manifests/package/pkggen_core_aarch64.txt | 9 ++++---- .../manifests/package/pkggen_core_x86_64.txt | 9 ++++---- .../manifests/package/toolchain_aarch64.txt | 19 +++++++++-------- .../manifests/package/toolchain_x86_64.txt | 19 +++++++++-------- .../manifests/package/update_manifests.sh | 1 + .../build_official_toolchain_rpms.sh | 2 ++ 7 files changed, 52 insertions(+), 28 deletions(-) diff --git a/SPECS/python3/python3.spec b/SPECS/python3/python3.spec index d034f17a55d..59c80e5fa29 100644 --- a/SPECS/python3/python3.spec +++ b/SPECS/python3/python3.spec @@ -8,7 +8,7 @@ Summary: A high-level scripting language Name: python3 Version: 3.9.10 -Release: 1%{?dist} +Release: 2%{?dist} License: PSF Vendor: Microsoft Corporation Distribution: Mariner @@ -27,13 +27,14 @@ BuildRequires: sqlite-devel BuildRequires: xz-devel Requires: ncurses Requires: openssl +# The base package and the unversioned python command package are co-requirements. +Requires: python-unversioned-command = %{version}-%{release} Requires: %{name}-libs = %{version}-%{release} Requires: readline Requires: xz Provides: python Provides: python-sqlite Provides: python(abi) -Provides: %{_bindir}/python Provides: /bin/python Provides: /bin/python3 Provides: %{name}-docs = %{version}-%{release} @@ -131,6 +132,13 @@ Requires: %{name} = %{version}-%{release} %description test The test package contains all regression tests for Python as well as the modules test.support and test.regrtest. test.support is used to enhance your tests while test.regrtest drives the testing suite. +%package -n python-unversioned-command +Summary: Unversioned python binary (points to %{name} binary) +Requires: %{name} = %{version}-%{release} + +%description -n python-unversioned-command +Contains the unversioned python binary, which is a symlink to %{name}. + %prep %autosetup -p1 -n Python-%{version} @@ -186,6 +194,9 @@ popd cp -p Tools/scripts/pathfix.py %{buildroot}%{_bindir}/pathfix%{majmin}.py ln -s ./pathfix%{majmin}.py %{buildroot}%{_bindir}/pathfix.py +# Create unversioned +ln -s python3 %{buildroot}{_bindir}/python + # Remove unused stuff find %{buildroot}%{_libdir} -name '*.pyc' -delete find %{buildroot}%{_libdir} -name '*.pyo' -delete @@ -278,7 +289,13 @@ rm -rf %{buildroot}%{_bindir}/__pycache__ %files test %{_libdir}/python%{majmin}/test/* +%files -n python-unversioned-command +%{_bindir}/python + %changelog +* Thu Mar 31 2022 Olivia Crain - 3.9.10-2 +- Add unversioned python binary to its own subpackage + * Tue Jan 25 2022 Thomas Crain - 3.9.10-1 - Upgrade to latest bugfix release for the 3.9 series diff --git a/toolkit/resources/manifests/package/pkggen_core_aarch64.txt b/toolkit/resources/manifests/package/pkggen_core_aarch64.txt index 5eb4151bef8..da5e01ea5c4 100644 --- a/toolkit/resources/manifests/package/pkggen_core_aarch64.txt +++ b/toolkit/resources/manifests/package/pkggen_core_aarch64.txt @@ -233,10 +233,11 @@ ca-certificates-base-2.0.0-1.cm2.noarch.rpm ca-certificates-2.0.0-1.cm2.noarch.rpm dwz-0.14-1.cm2.aarch64.rpm unzip-6.0-19.cm2.aarch64.rpm -python3-3.9.10-1.cm2.aarch64.rpm -python3-devel-3.9.10-1.cm2.aarch64.rpm -python3-libs-3.9.10-1.cm2.aarch64.rpm -python3-setuptools-3.9.10-1.cm2.noarch.rpm +python3-3.9.10-2.cm2.aarch64.rpm +python3-devel-3.9.10-2.cm2.aarch64.rpm +python3-libs-3.9.10-2.cm2.aarch64.rpm +python3-setuptools-3.9.10-2.cm2.noarch.rpm +python-unversioned-command-3.9.10-2.cm2.aarch64.rpm which-2.21-8.cm2.aarch64.rpm libselinux-3.2-1.cm2.aarch64.rpm slang-2.3.2-4.cm2.aarch64.rpm diff --git a/toolkit/resources/manifests/package/pkggen_core_x86_64.txt b/toolkit/resources/manifests/package/pkggen_core_x86_64.txt index b024c6cef29..ec5784c50eb 100644 --- a/toolkit/resources/manifests/package/pkggen_core_x86_64.txt +++ b/toolkit/resources/manifests/package/pkggen_core_x86_64.txt @@ -233,10 +233,11 @@ ca-certificates-base-2.0.0-1.cm2.noarch.rpm ca-certificates-2.0.0-1.cm2.noarch.rpm dwz-0.14-1.cm2.x86_64.rpm unzip-6.0-19.cm2.x86_64.rpm -python3-3.9.10-1.cm2.x86_64.rpm -python3-devel-3.9.10-1.cm2.x86_64.rpm -python3-libs-3.9.10-1.cm2.x86_64.rpm -python3-setuptools-3.9.10-1.cm2.noarch.rpm +python3-3.9.10-2.cm2.x86_64.rpm +python3-devel-3.9.10-2.cm2.x86_64.rpm +python3-libs-3.9.10-2.cm2.x86_64.rpm +python3-setuptools-3.9.10-2.cm2.noarch.rpm +python-unversioned-command-3.9.10-2.cm2.x86_64.rpm which-2.21-8.cm2.x86_64.rpm libselinux-3.2-1.cm2.x86_64.rpm slang-2.3.2-4.cm2.x86_64.rpm diff --git a/toolkit/resources/manifests/package/toolchain_aarch64.txt b/toolkit/resources/manifests/package/toolchain_aarch64.txt index 3de52c354ac..de203ac379e 100644 --- a/toolkit/resources/manifests/package/toolchain_aarch64.txt +++ b/toolkit/resources/manifests/package/toolchain_aarch64.txt @@ -495,25 +495,26 @@ procps-ng-devel-3.3.17-1.cm2.aarch64.rpm procps-ng-lang-3.3.17-1.cm2.aarch64.rpm pyproject-rpm-macros-1.0.0~rc1-2.cm2.noarch.rpm python-markupsafe-debuginfo-2.1.0-1.cm2.aarch64.rpm -python3-3.9.10-1.cm2.aarch64.rpm +python-unversioned-command-3.9.10-2.cm2.aarch64.rpm +python3-3.9.10-2.cm2.aarch64.rpm python3-audit-3.0.6-4.cm2.aarch64.rpm python3-cracklib-2.9.7-4.cm2.aarch64.rpm -python3-curses-3.9.10-1.cm2.aarch64.rpm -python3-debuginfo-3.9.10-1.cm2.aarch64.rpm -python3-devel-3.9.10-1.cm2.aarch64.rpm +python3-curses-3.9.10-2.cm2.aarch64.rpm +python3-debuginfo-3.9.10-2.cm2.aarch64.rpm +python3-devel-3.9.10-2.cm2.aarch64.rpm python3-gpg-1.16.0-1.cm2.aarch64.rpm python3-jinja2-3.0.3-2.cm2.noarch.rpm -python3-libs-3.9.10-1.cm2.aarch64.rpm +python3-libs-3.9.10-2.cm2.aarch64.rpm python3-libxml2-2.9.13-1.cm2.aarch64.rpm python3-magic-5.40-2.cm2.noarch.rpm python3-markupsafe-2.1.0-1.cm2.aarch64.rpm python3-newt-0.52.21-3.cm2.aarch64.rpm -python3-pip-3.9.10-1.cm2.noarch.rpm +python3-pip-3.9.10-2.cm2.noarch.rpm python3-pygments-2.4.2-7.cm2.noarch.rpm python3-rpm-4.17.0-3.cm2.aarch64.rpm -python3-setuptools-3.9.10-1.cm2.noarch.rpm -python3-test-3.9.10-1.cm2.aarch64.rpm -python3-tools-3.9.10-1.cm2.aarch64.rpm +python3-setuptools-3.9.10-2.cm2.noarch.rpm +python3-test-3.9.10-2.cm2.aarch64.rpm +python3-tools-3.9.10-2.cm2.aarch64.rpm readline-8.1-1.cm2.aarch64.rpm readline-debuginfo-8.1-1.cm2.aarch64.rpm readline-devel-8.1-1.cm2.aarch64.rpm diff --git a/toolkit/resources/manifests/package/toolchain_x86_64.txt b/toolkit/resources/manifests/package/toolchain_x86_64.txt index 6112d801f6e..f0e8c8ee31e 100644 --- a/toolkit/resources/manifests/package/toolchain_x86_64.txt +++ b/toolkit/resources/manifests/package/toolchain_x86_64.txt @@ -495,25 +495,26 @@ procps-ng-devel-3.3.17-1.cm2.x86_64.rpm procps-ng-lang-3.3.17-1.cm2.x86_64.rpm pyproject-rpm-macros-1.0.0~rc1-2.cm2.noarch.rpm python-markupsafe-debuginfo-2.1.0-1.cm2.x86_64.rpm -python3-3.9.10-1.cm2.x86_64.rpm +python-unversioned-command-3.9.10-2.cm2.x86_64.rpm +python3-3.9.10-2.cm2.x86_64.rpm python3-audit-3.0.6-4.cm2.x86_64.rpm python3-cracklib-2.9.7-4.cm2.x86_64.rpm -python3-curses-3.9.10-1.cm2.x86_64.rpm -python3-debuginfo-3.9.10-1.cm2.x86_64.rpm -python3-devel-3.9.10-1.cm2.x86_64.rpm +python3-curses-3.9.10-2.cm2.x86_64.rpm +python3-debuginfo-3.9.10-2.cm2.x86_64.rpm +python3-devel-3.9.10-2.cm2.x86_64.rpm python3-gpg-1.16.0-1.cm2.x86_64.rpm python3-jinja2-3.0.3-2.cm2.noarch.rpm -python3-libs-3.9.10-1.cm2.x86_64.rpm +python3-libs-3.9.10-2.cm2.x86_64.rpm python3-libxml2-2.9.13-1.cm2.x86_64.rpm python3-magic-5.40-2.cm2.noarch.rpm python3-markupsafe-2.1.0-1.cm2.x86_64.rpm python3-newt-0.52.21-3.cm2.x86_64.rpm -python3-pip-3.9.10-1.cm2.noarch.rpm +python3-pip-3.9.10-2.cm2.noarch.rpm python3-pygments-2.4.2-7.cm2.noarch.rpm python3-rpm-4.17.0-3.cm2.x86_64.rpm -python3-setuptools-3.9.10-1.cm2.noarch.rpm -python3-test-3.9.10-1.cm2.x86_64.rpm -python3-tools-3.9.10-1.cm2.x86_64.rpm +python3-setuptools-3.9.10-2.cm2.noarch.rpm +python3-test-3.9.10-2.cm2.x86_64.rpm +python3-tools-3.9.10-2.cm2.x86_64.rpm readline-8.1-1.cm2.x86_64.rpm readline-debuginfo-8.1-1.cm2.x86_64.rpm readline-devel-8.1-1.cm2.x86_64.rpm diff --git a/toolkit/resources/manifests/package/update_manifests.sh b/toolkit/resources/manifests/package/update_manifests.sh index 4018838bcbb..52db8acc986 100755 --- a/toolkit/resources/manifests/package/update_manifests.sh +++ b/toolkit/resources/manifests/package/update_manifests.sh @@ -294,6 +294,7 @@ generate_pkggen_core () { grep "^dwz-" $TmpPkgGen grep "^unzip-" $TmpPkgGen grep "^python3-" $TmpPkgGen + grep "^python-unversioned-command-"$TmpPkgGen grep "^which-" $TmpPkgGen grep "^libselinux-" $TmpPkgGen grep "^slang-[0-9]" $TmpPkgGen diff --git a/toolkit/scripts/toolchain/build_official_toolchain_rpms.sh b/toolkit/scripts/toolchain/build_official_toolchain_rpms.sh index 7c7ee75d543..e3136baaaa6 100755 --- a/toolkit/scripts/toolchain/build_official_toolchain_rpms.sh +++ b/toolkit/scripts/toolchain/build_official_toolchain_rpms.sh @@ -309,8 +309,10 @@ chroot_and_install_rpms gperf # Python3 needs to be installed for RPM to build build_rpm_in_chroot_no_install python3 +copy_rpm_subpackage python-unversioned-command rm -vf $FINISHED_RPM_DIR/python3*debuginfo*.rpm chroot_and_install_rpms python3 +chroot_and_install_rpms python-unversioned-command # libxml2 is required for at least: libxslt, createrepo_c build_rpm_in_chroot_no_install libxml2 From 41d743c9d42960cd0f65cd7b5169b057771cb7e2 Mon Sep 17 00:00:00 2001 From: Olivia Crain Date: Thu, 31 Mar 2022 13:53:38 -0700 Subject: [PATCH 2/4] Finish comment in %install section --- SPECS/python3/python3.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SPECS/python3/python3.spec b/SPECS/python3/python3.spec index 59c80e5fa29..714f02cde2a 100644 --- a/SPECS/python3/python3.spec +++ b/SPECS/python3/python3.spec @@ -194,7 +194,7 @@ popd cp -p Tools/scripts/pathfix.py %{buildroot}%{_bindir}/pathfix%{majmin}.py ln -s ./pathfix%{majmin}.py %{buildroot}%{_bindir}/pathfix.py -# Create unversioned +# Create unversioned python binary file as a symlink ln -s python3 %{buildroot}{_bindir}/python # Remove unused stuff From 102e00eec607c599c8aaacc64dc2379f3d6eefa4 Mon Sep 17 00:00:00 2001 From: Olivia Crain Date: Thu, 31 Mar 2022 13:54:58 -0700 Subject: [PATCH 3/4] Update update_manifests.sh --- toolkit/resources/manifests/package/update_manifests.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/toolkit/resources/manifests/package/update_manifests.sh b/toolkit/resources/manifests/package/update_manifests.sh index 52db8acc986..d996fa792b7 100755 --- a/toolkit/resources/manifests/package/update_manifests.sh +++ b/toolkit/resources/manifests/package/update_manifests.sh @@ -294,7 +294,7 @@ generate_pkggen_core () { grep "^dwz-" $TmpPkgGen grep "^unzip-" $TmpPkgGen grep "^python3-" $TmpPkgGen - grep "^python-unversioned-command-"$TmpPkgGen + grep "^python-unversioned-command-" $TmpPkgGen grep "^which-" $TmpPkgGen grep "^libselinux-" $TmpPkgGen grep "^slang-[0-9]" $TmpPkgGen From 912651c9177d5db1b42f48fb64f869cfbd11fd6d Mon Sep 17 00:00:00 2001 From: Olivia Crain Date: Fri, 1 Apr 2022 08:15:51 -0700 Subject: [PATCH 4/4] Fix bad macro usage in symlink --- SPECS/python3/python3.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SPECS/python3/python3.spec b/SPECS/python3/python3.spec index 714f02cde2a..0ceebaaece8 100644 --- a/SPECS/python3/python3.spec +++ b/SPECS/python3/python3.spec @@ -195,7 +195,7 @@ cp -p Tools/scripts/pathfix.py %{buildroot}%{_bindir}/pathfix%{majmin}.py ln -s ./pathfix%{majmin}.py %{buildroot}%{_bindir}/pathfix.py # Create unversioned python binary file as a symlink -ln -s python3 %{buildroot}{_bindir}/python +ln -s python3 %{buildroot}%{_bindir}/python # Remove unused stuff find %{buildroot}%{_libdir} -name '*.pyc' -delete