Title: make install DESTDIR=... does not create the lib-dynload directory in DESTDIR if the real lib-dynload directory exists · Issue #98782 · python/cpython · GitHub
Open Graph Title: make install DESTDIR=... does not create the lib-dynload directory in DESTDIR if the real lib-dynload directory exists · Issue #98782 · python/cpython
X Title: make install DESTDIR=... does not create the lib-dynload directory in DESTDIR if the real lib-dynload directory exists · Issue #98782 · python/cpython
Description: Bug report When Python 3.12 is installed and make install DESDIR=... runs with Python 3.12, the entire lib-dynload directory is skipped. I believe this is a result of changes in the Makefile #94474 To reproduce: $ ./configure $ make -j.....
Open Graph Description: Bug report When Python 3.12 is installed and make install DESDIR=... runs with Python 3.12, the entire lib-dynload directory is skipped. I believe this is a result of changes in the Makefile #94474...
X Description: Bug report When Python 3.12 is installed and make install DESDIR=... runs with Python 3.12, the entire lib-dynload directory is skipped. I believe this is a result of changes in the Makefile #94474...
Opengraph URL: https://github.com/python/cpython/issues/98782
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"make install DESTDIR=... does not create the lib-dynload directory in DESTDIR if the real lib-dynload directory exists","articleBody":"\u003c!--\r\n If you're new to Python and you're not sure whether what you're experiencing is a bug, the CPython issue tracker is not\r\n the right place to seek help. Consider the following options instead:\r\n\r\n - reading the Python tutorial: https://docs.python.org/3/tutorial/\r\n - posting in the \"Users\" category on discuss.python.org: https://discuss.python.org/c/users/7\r\n - emailing the Python-list mailing list: https://mail.python.org/mailman/listinfo/python-list\r\n - searching our issue tracker (https://github.com/python/cpython/issues) to see if\r\n your problem has already been reported\r\n--\u003e\r\n\r\n# Bug report\r\n\r\nWhen Python 3.12 is installed and `make install DESDIR=...` runs with Python 3.12, the entire lib-dynload directory is skipped.\r\n\r\nI believe this is a result of changes in the Makefile https://github.com/python/cpython/pull/94474\r\n\r\nTo reproduce:\r\n\r\n```\r\n$ ./configure\r\n$ make -j...\r\n$ make install DESTDIR=/tmp/python\r\n...\r\nCreating directory /usr/local/lib/python3.12/lib-dynload\r\n/usr/bin/install -c -m 755 Modules/array.cpython-312-x86_64-linux-gnu.so /usr/local/lib/python3.12/lib-dynload/array.cpython-312-x86_64-linux-gnu.so\r\n/usr/bin/install -c -m 755 Modules/_asyncio.cpython-312-x86_64-linux-gnu.so /usr/local/lib/python3.12/lib-dynload/_asyncio.cpython-312-x86_64-linux-gnu.so\r\n...\r\n```\r\n\r\nEverything is fine, `/tmp/python/usr/local/lib/python3.12/lib-dynload/` is created and contains the standard library extension modules.\r\n\r\nNow try again:\r\n\r\n```\r\n$ rm -rf /tmp/python # undo the previous DESTDIR installation\r\n$ sudo mkdir -p /usr/local/lib/python3.12/lib-dynload # or sudo make install without DESTDIR\r\n$ make install DESTDIR=/tmp/python\r\n...\r\n/usr/bin/install -c -m 755 Modules/array.cpython-312-x86_64-linux-gnu.so /usr/local/lib/python3.12/lib-dynload/array.cpython-312-x86_64-linux-gnu.so\r\n/usr/bin/install: cannot create regular file '/tmp/python/usr/local/lib/python3.12/lib-dynload/array.cpython-312-x86_64-linux-gnu.so': No such file or directory\r\n...\r\n/usr/bin/install -c -m 755 Modules/xxlimited.cpython-312-x86_64-linux-gnu.so /usr/local/lib/python3.12/lib-dynload/xxlimited.cpython-312-x86_64-linux-gnu.so\r\n/usr/bin/install: cannot create regular file '/tmp/python/usr/local/lib/python3.12/lib-dynload/xxlimited.cpython-312-x86_64-linux-gnu.so': No such file or directory\r\n/usr/bin/install -c -m 755 Modules/xxlimited_35.cpython-312-x86_64-linux-gnu.so /usr/local/lib/python3.12/lib-dynload/xxlimited_35.cpython-312-x86_64-linux-gnu.so\r\n/usr/bin/install: cannot create regular file '/tmp/python/usr/local/lib/python3.12/lib-dynload/xxlimited_35.cpython-312-x86_64-linux-gnu.so': No such file or directory\r\n...\r\n```\r\n\r\n`/tmp/python/usr/local/lib/python3.12/lib-dynload/` is missing entirely. The command succeeds anyway.\r\n\r\nA workaround is to `mkdir -p .../usr/local/lib/python3.12/lib-dynload/` before running `make install DESTDIR=...`\r\n\r\nIn Fedora, we build and install Python this way, when we create the package. As a result, when Python 3.12 is installed during the RPM package build, the build fails because the extension modules are missing. Since we try to use Python 3.12 as the Python for regen, this happens to us.\r\n\r\n# Your environment\r\n\r\n\u003c!-- Include as many relevant details as possible about the environment you experienced the bug in --\u003e\r\n\r\n- CPython versions tested on: 3.11.0a1 or the main branch\r\n- Operating system and architecture: Fedora Linux x86_64\r\n\r\n\u003c!--\r\nYou can freely edit this text. Remove any lines you believe are unnecessary.\r\n--\u003e\r\n","author":{"url":"https://github.com/hroncok","@type":"Person","name":"hroncok"},"datePublished":"2022-10-27T20:28:18.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":1},"url":"https://github.com/98782/cpython/issues/98782"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:2eb83ce5-9236-fd93-c370-3de50ce8912e |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | AFA4:18B65E:BF9FCB:105BDF5:6969ED35 |
| html-safe-nonce | 2025ecdfef3c739248866a13465f8b2bfe1fe05b5148111cdb42866db2357b50 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJBRkE0OjE4QjY1RTpCRjlGQ0I6MTA1QkRGNTo2OTY5RUQzNSIsInZpc2l0b3JfaWQiOiI4MDQ5MjIxMjU3OTk2NjYwMDIxIiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0= |
| visitor-hmac | 93d2ded4633e9a44d170a874f8fadfee98cdc619d304f1eca413bc69ce4930ed |
| hovercard-subject-tag | issue:1426228844 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/python/cpython/98782/issue_layout |
| twitter:image | https://opengraph.githubassets.com/e252be37c80e88b8ca8f8c157c97690d599ff53dd073e1d19d112c747385a9cd/python/cpython/issues/98782 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/e252be37c80e88b8ca8f8c157c97690d599ff53dd073e1d19d112c747385a9cd/python/cpython/issues/98782 |
| og:image:alt | Bug report When Python 3.12 is installed and make install DESDIR=... runs with Python 3.12, the entire lib-dynload directory is skipped. I believe this is a result of changes in the Makefile #94474... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | hroncok |
| hostname | github.com |
| expected-hostname | github.com |
| None | 7b32f1c7c4549428ee399213e8345494fc55b5637195d3fc5f493657579235e8 |
| turbo-cache-control | no-preview |
| go-import | github.com/python/cpython git https://github.com/python/cpython.git |
| octolytics-dimension-user_id | 1525981 |
| octolytics-dimension-user_login | python |
| octolytics-dimension-repository_id | 81598961 |
| octolytics-dimension-repository_nwo | python/cpython |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 81598961 |
| octolytics-dimension-repository_network_root_nwo | python/cpython |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | bdde15ad1b403e23b08bbd89b53fbe6bdf688cad |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width