Title: `make sharedinstall` does not return failure if install commands fail · Issue #100220 · python/cpython · GitHub
Open Graph Title: `make sharedinstall` does not return failure if install commands fail · Issue #100220 · python/cpython
X Title: `make sharedinstall` does not return failure if install commands fail · Issue #100220 · python/cpython
Description: Bug report If make sharedinstall fails to install some Python extensions, the make target wrongly succeeds. For example, I'm seeing: /usr/bin/install -c -m 755 Modules/array.cpython-312-x86_64-linux-gnu.so /usr/lib/python3.12/lib-dynload...
Open Graph Description: Bug report If make sharedinstall fails to install some Python extensions, the make target wrongly succeeds. For example, I'm seeing: /usr/bin/install -c -m 755 Modules/array.cpython-312-x86_64-linu...
X Description: Bug report If make sharedinstall fails to install some Python extensions, the make target wrongly succeeds. For example, I'm seeing: /usr/bin/install -c -m 755 Modules/array.cpython-312-x86_64-...
Opengraph URL: https://github.com/python/cpython/issues/100220
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"`make sharedinstall` does not return failure if install commands fail","articleBody":"# Bug report\r\n\r\nIf `make sharedinstall` fails to install some Python extensions, the make target wrongly succeeds. For example, I'm seeing:\r\n\r\n```\r\n/usr/bin/install -c -m 755 Modules/array.cpython-312-x86_64-linux-gnu.so /usr/lib/python3.12/lib-dynload/array.cpython-312-x86_64-linux-gnu.so\r\n/usr/bin/install: cannot create regular file '/var/tmp/portage/dev-lang/python-3.12.0_alpha3/image/usr/lib/python3.12/lib-dynload/array.cpython-312-x86_64-linux-gnu.so': No such file or directory\r\n/usr/bin/install -c -m 755 Modules/_asyncio.cpython-312-x86_64-linux-gnu.so /usr/lib/python3.12/lib-dynload/_asyncio.cpython-312-x86_64-linux-gnu.so\r\n/usr/bin/install: cannot create regular file '/var/tmp/portage/dev-lang/python-3.12.0_alpha3/image/usr/lib/python3.12/lib-dynload/_asyncio.cpython-312-x86_64-linux-gnu.so': No such file or directory\r\n/usr/bin/install -c -m 755 Modules/_bisect.cpython-312-x86_64-linux-gnu.so /usr/lib/python3.12/lib-dynload/_bisect.cpython-312-x86_64-linux-gnu.so\r\n[...]\r\n```\r\n\r\nNevertheless, `make install` returns successfully in this case. This causes major problems for automated builds since they end up with broken Python installs when the make target should have failed.\r\n\r\nI need to investigate why it's failing but that's a separate issue.\r\n\r\nComplete build log (1.2M): [dev-lang:python-3.12.0_alpha3:20221207-142002.log](https://github.com/python/cpython/files/10218273/dev-lang.python-3.12.0_alpha3.20221207-142002.log)\r\n\r\nThe problem seems to be that the `sharedinstall` targets runs a single shell command and make doesn't check the exit status until its very end.\r\n\r\nI suspect the same problem may apply to other install rules.\r\n\r\n# Your environment\r\n\r\n- CPython versions tested on: 3.12.0a3\r\n- Operating system and architecture: Gentoo Linux/amd64\r\n\n\n\u003c!-- gh-linked-prs --\u003e\n### Linked PRs\n* gh-100328\n\u003c!-- /gh-linked-prs --\u003e\n","author":{"url":"https://github.com/mgorny","@type":"Person","name":"mgorny"},"datePublished":"2022-12-13T13:32:38.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":2},"url":"https://github.com/100220/cpython/issues/100220"}
| 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:1d28a816-ebda-20a0-a4c4-3cf797787f30 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | CD06:39C817:63C8A2:8B35F8:696A2619 |
| html-safe-nonce | 5dbb7bf9f4bdf5ec43da68962e8e986e15f06328c474db6d826373bc16f67cdc |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJDRDA2OjM5QzgxNzo2M0M4QTI6OEIzNUY4OjY5NkEyNjE5IiwidmlzaXRvcl9pZCI6IjE3MzMwNzc4ODQ3NjM1MTQzOTMiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ== |
| visitor-hmac | d181fda4946f053e8c3d4aaeabdcaf5b2798e9aeb5a05400abf689fb3d4627a9 |
| hovercard-subject-tag | issue:1494247691 |
| 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/100220/issue_layout |
| twitter:image | https://opengraph.githubassets.com/54f7338a47eba0e39a90f27215a87dfb45168afc556395aaccf7e782a8514e0b/python/cpython/issues/100220 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/54f7338a47eba0e39a90f27215a87dfb45168afc556395aaccf7e782a8514e0b/python/cpython/issues/100220 |
| og:image:alt | Bug report If make sharedinstall fails to install some Python extensions, the make target wrongly succeeds. For example, I'm seeing: /usr/bin/install -c -m 755 Modules/array.cpython-312-x86_64-linu... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | mgorny |
| hostname | github.com |
| expected-hostname | github.com |
| None | a1022f03e4f0d91ea173e4e5dac892c982e0588c62f1ce56121d755a320a3569 |
| 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 | f472b8e6c7b3fdd5d0354972a3f4c516289bf0be |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width