diff --git a/py3.12-pip.yaml b/py3.12-pip.yaml index 18dab2595bd..6ae01c589fe 100644 --- a/py3.12-pip.yaml +++ b/py3.12-pip.yaml @@ -1,7 +1,7 @@ package: name: py3.12-pip version: "24.0" - epoch: 0 + epoch: 1 description: The PyPA recommended tool for installing Python packages. copyright: - license: MIT @@ -30,10 +30,10 @@ pipeline: tag: ${{package.version}} - name: Python Build - runs: python setup.py build + runs: python3 setup.py build - name: Python Install - runs: python setup.py install --prefix=/usr --root="${{targets.destdir}}" + runs: python3 setup.py install --prefix=/usr --root="${{targets.destdir}}" - uses: strip diff --git a/py3.12-setuptools.yaml b/py3.12-setuptools.yaml index 31e54d554fe..f2e2c4494f8 100644 --- a/py3.12-setuptools.yaml +++ b/py3.12-setuptools.yaml @@ -1,7 +1,7 @@ package: name: py3.12-setuptools version: 69.1.1 - epoch: 0 + epoch: 1 description: Easily download, build, install, upgrade, and uninstall Python packages copyright: - license: "MIT" @@ -27,10 +27,10 @@ pipeline: uri: https://files.pythonhosted.org/packages/source/s/setuptools/setuptools-${{package.version}}.tar.gz - name: Python Build - runs: python setup.py build + runs: python3 setup.py build - name: Python Install - runs: python setup.py install --prefix=/usr --root="${{targets.destdir}}" --skip-build + runs: python3 setup.py install --prefix=/usr --root="${{targets.destdir}}" --skip-build update: enabled: true diff --git a/python-3.12.yaml b/python-3.12.yaml index a18106a7f7a..61e1846814a 100644 --- a/python-3.12.yaml +++ b/python-3.12.yaml @@ -1,10 +1,16 @@ package: name: python-3.12 version: 3.12.2 - epoch: 6 + epoch: 7 description: "the Python programming language" copyright: - license: PSF-2.0 + dependencies: + provides: + - python3=${{package.full-version}} + - python-3=${{package.full-version}} + runtime: + - ${{package.name}}-base=${{package.full-version}} environment: contents: @@ -87,7 +93,7 @@ pipeline: find ${{targets.destdir}}/usr/lib -type d -name 'idle_test' -exec rm -rf '{}' + cd ${{targets.destdir}}/usr/bin - rm -f python3 pydoc3 idle3* 2to3* + rm -f idle3* 2to3* rm ${{targets.destdir}}/usr/lib/libpython3.so # Drop site-packages README.txt to avoid SCA dep on python3~3.M @@ -111,20 +117,29 @@ test: ${{vars.python}} CVE-2023-27043-unittest.py subpackages: - - name: "${{package.name}}-default" + - name: "${{package.name}}-base" description: "${{package.name}} as /usr/bin/python3" - dependencies: - provides: - - python3=${{package.full-version}} - - python-3=${{package.full-version}} - runtime: - - ${{package.name}} pipeline: - runs: | - mkdir -p ${{targets.subpkgdir}}/usr/bin - ln -sf ${{vars.python}} "${{targets.subpkgdir}}"/usr/bin/python3 - ln -sf pydoc${{vars.pyversion}} "${{targets.subpkgdir}}"/usr/bin/pydoc3 - ln -sf python3 "${{targets.subpkgdir}}"/usr/bin/python + mkdir -p ${{targets.subpkgdir}}/usr/bin ${{targets.subpkgdir}}/usr/lib + mv ${{targets.destdir}}/usr/bin/${{vars.python}} \ + ${{targets.destdir}}/usr/bin/pydoc${{vars.pyversion}} \ + ${{targets.subpkgdir}}/usr/bin + mv -v ${{targets.destdir}}/usr/lib/${{vars.python}} \ + ${{targets.subpkgdir}}/usr/lib + mv -v ${{targets.destdir}}/usr/lib/libpython${{vars.pyversion}}.so.* \ + ${{targets.subpkgdir}}/usr/lib + + # pyconfig.h is needed at runtime... ugh. + d=usr/include/${{vars.python}} + mkdir -p "${{targets.subpkgdir}}"/$d + mv "${{targets.destdir}}"/$d/pyconfig.h "${{targets.subpkgdir}}"/$d/ + # this does not belong here. picked up by -base-dev below. + # config-3.12-x86_64-linux-gnu + d="usr/lib/${{vars.python}}" + mkdir -p "${{targets.destdir}}/$d" + mv -v "${{targets.subpkgdir}}/$d"/config-${{vars.pyversion}}* \ + "${{targets.destdir}}/$d" - name: "${{package.name}}-doc" description: "python3 documentation" @@ -133,22 +148,38 @@ subpackages: - name: "${{package.name}}-dev" description: "python3 development headers" + dependencies: + provides: + - python3-dev=${{package.full-version}} + - python-3-dev=${{package.full-version}} + runtime: + - ${{package.name}}-base-dev=${{package.full-version}} pipeline: - - uses: split/dev - runs: | - # pyconfig.h is needed at runtime... ugh. - mkdir -p "${{targets.destdir}}"/usr/include/${{vars.python}} - mv "${{targets.subpkgdir}}"/usr/include/${{vars.python}}/pyconfig.h "${{targets.destdir}}"/usr/include/${{vars.python}} + mkdir -p ${{targets.subpkgdir}}/usr/bin + mv -v ${{targets.destdir}}/usr/bin/python3-config ${{targets.subpkgdir}}/usr/bin - - name: "${{package.name}}-dev-default" - description: "python3 by default with development headers" + d="usr/lib/pkgconfig" + mkdir -p "${{targets.subpkgdir}}/$d" + mv -v \ + "${{targets.destdir}}"/$d/python3-embed.pc \ + "${{targets.destdir}}"/$d/python3.pc \ + "${{targets.subpkgdir}}/$d/" + + - name: "${{package.name}}-base-dev" + description: "python3 development headers" dependencies: runtime: - - ${{package.name}}-dev - - ${{package.name}}-default - provides: - - python3-dev=${{package.full-version}} - - python-3-dev=${{package.full-version}} + - ${{package.name}}-base=${{package.full-version}} + pipeline: + - uses: split/dev + - runs: | + # expect a dir like config-3.12-x86_64-linux-gnu + d="usr/lib/${{vars.python}}" + mkdir -p "${{targets.subpkgdir}}/$d" + mv -v "${{targets.destdir}}"/$d/config-${{vars.pyversion}}* \ + "${{targets.subpkgdir}}"/$d/config-${{vars.pyversion}}* + rm -rf "${{targets.destdir}}"/$d/config-${{vars.pyversion}}* update: enabled: true