Opened 3 years ago

Closed 3 years ago

Last modified 3 years ago

#64425 closed defect (fixed)

py-pendulum won't build from source

Reported by: blazewicz (Krzysztof Błażewicz) Owned by: xeron (Ivan Larionov)
Priority: Normal Milestone:
Component: ports Version: 2.7.1
Keywords: Cc:
Port: py-pendulum

Description (last modified by blazewicz (Krzysztof Błażewicz))

It appears that command below isn't creating wheel file.

python3.9 -m build --wheel --no-isolation --outdir /opt/local/var/macports/build/_Users_kblazewicz_ports_python_py-pendulum/py39-pendulum/work

I tested this on Intel MacBook Pro running Big Sur (11.6.1) and M1 MacBook Pro running Monterey (12.1).

Below is output from sudo port -v install -s py39-pendulum, all requirements were installed before.

--->  Computing dependencies for py39-pendulum.
--->  Fetching distfiles for py39-pendulum
--->  Verifying checksums for py39-pendulum
--->  Checksumming pendulum-2.1.2.tar.gz
--->  Extracting py39-pendulum
--->  Extracting pendulum-2.1.2.tar.gz
Executing:  cd "/opt/local/var/macports/build/_Users_kblazewicz_ports_python_py-pendulum/py39-pendulum/work" && /usr/bin/gzip -dc '/opt/local/var/macports/distfiles/py-pendulum/pendulum-2.1.2.tar.gz' | /usr/bin/tar -xf -
--->  Configuring py39-pendulum
--->  Building py39-pendulum
xinstall: mkdir /opt/local/var/macports/build/_Users_kblazewicz_ports_python_py-pendulum/py39-pendulum/work/compwrap
xinstall: mkdir /opt/local/var/macports/build/_Users_kblazewicz_ports_python_py-pendulum/py39-pendulum/work/compwrap/cc
xinstall: mkdir /opt/local/var/macports/build/_Users_kblazewicz_ports_python_py-pendulum/py39-pendulum/work/compwrap/cc/usr
xinstall: mkdir /opt/local/var/macports/build/_Users_kblazewicz_ports_python_py-pendulum/py39-pendulum/work/compwrap/cc/usr/bin
xinstall: mkdir /opt/local/var/macports/build/_Users_kblazewicz_ports_python_py-pendulum/py39-pendulum/work/compwrap/objc
xinstall: mkdir /opt/local/var/macports/build/_Users_kblazewicz_ports_python_py-pendulum/py39-pendulum/work/compwrap/objc/usr
xinstall: mkdir /opt/local/var/macports/build/_Users_kblazewicz_ports_python_py-pendulum/py39-pendulum/work/compwrap/objc/usr/bin
xinstall: mkdir /opt/local/var/macports/build/_Users_kblazewicz_ports_python_py-pendulum/py39-pendulum/work/compwrap/cxx
xinstall: mkdir /opt/local/var/macports/build/_Users_kblazewicz_ports_python_py-pendulum/py39-pendulum/work/compwrap/cxx/usr
xinstall: mkdir /opt/local/var/macports/build/_Users_kblazewicz_ports_python_py-pendulum/py39-pendulum/work/compwrap/cxx/usr/bin
xinstall: mkdir /opt/local/var/macports/build/_Users_kblazewicz_ports_python_py-pendulum/py39-pendulum/work/compwrap/objcxx
xinstall: mkdir /opt/local/var/macports/build/_Users_kblazewicz_ports_python_py-pendulum/py39-pendulum/work/compwrap/objcxx/usr
xinstall: mkdir /opt/local/var/macports/build/_Users_kblazewicz_ports_python_py-pendulum/py39-pendulum/work/compwrap/objcxx/usr/bin
Executing:  cd "/opt/local/var/macports/build/_Users_kblazewicz_ports_python_py-pendulum/py39-pendulum/work/pendulum-2.1.2" && /opt/local/Library/Frameworks/Python.framework/Versions/3.9/bin/python3.9 -m build --wheel --no-isolation --outdir /opt/local/var/macports/build/_Users_kblazewicz_ports_python_py-pendulum/py39-pendulum/work
--->  Staging py39-pendulum into destroot
./usr missing (created)
. missing (directory not created: File exists)
./Applications missing (created)
./Developer missing (created)
./Library missing (created)
. changed
	gid expected 80 found 0 modified
./bin missing (created)
./etc missing (created)
./include missing (created)
./lib missing (created)
./lib/pkgconfig missing (created)
./libexec missing (created)
./sbin missing (created)
./share missing (created)
./share/doc missing (created)
./share/info missing (created)
./share/man missing (created)
./share/man/cat1 missing (created)
./share/man/cat2 missing (created)
./share/man/cat3 missing (created)
./share/man/cat4 missing (created)
./share/man/cat5 missing (created)
./share/man/cat6 missing (created)
./share/man/cat7 missing (created)
./share/man/cat8 missing (created)
./share/man/cat9 missing (created)
./share/man/catl missing (created)
./share/man/catn missing (created)
./share/man/man1 missing (created)
./share/man/man2 missing (created)
./share/man/man3 missing (created)
./share/man/man4 missing (created)
./share/man/man5 missing (created)
./share/man/man6 missing (created)
./share/man/man7 missing (created)
./share/man/man8 missing (created)
./share/man/man9 missing (created)
./share/man/manl missing (created)
./share/man/mann missing (created)
./share/nls missing (created)
./share/nls/C missing (created)
./share/nls/af_ZA.ISO8859-1 missing (created)
./share/nls/af_ZA.ISO8859-15 missing (created)
./share/nls/bg_BG.CP1251 missing (created)
./share/nls/cs_CZ.ISO8859-2 missing (created)
./share/nls/da_DK.ISO8859-1 missing (created)
./share/nls/da_DK.ISO8859-15 missing (created)
./share/nls/de_AT.ISO8859-1 missing (created)
./share/nls/de_AT.ISO8859-15 missing (created)
./share/nls/de_CH.ISO8859-1 missing (created)
./share/nls/de_CH.ISO8859-15 missing (created)
./share/nls/de_DE.ISO8859-1 missing (created)
./share/nls/de_DE.ISO8859-15 missing (created)
./share/nls/el_GR.ISO8859-7 missing (created)
./share/nls/en_AU.ISO8859-1 missing (created)
./share/nls/en_AU.ISO8859-15 missing (created)
./share/nls/en_AU.US-ASCII missing (created)
./share/nls/en_CA.ISO8859-1 missing (created)
./share/nls/en_CA.ISO8859-15 missing (created)
./share/nls/en_CA.US-ASCII missing (created)
./share/nls/en_GB.ISO8859-1 missing (created)
./share/nls/en_GB.ISO8859-15 missing (created)
./share/nls/en_GB.US-ASCII missing (created)
./share/nls/en_NZ.ISO8859-1 missing (created)
./share/nls/en_NZ.ISO8859-15 missing (created)
./share/nls/en_NZ.US-ASCII missing (created)
./share/nls/en_US.ISO8859-1 missing (created)
./share/nls/en_US.ISO8859-15 missing (created)
./share/nls/es_ES.ISO8859-1 missing (created)
./share/nls/es_ES.ISO8859-15 missing (created)
./share/nls/et_EE.ISO8859-15 missing (created)
./share/nls/fi_FI.ISO8859-1 missing (created)
./share/nls/fi_FI.ISO8859-15 missing (created)
./share/nls/fr_BE.ISO8859-1 missing (created)
./share/nls/fr_BE.ISO8859-15 missing (created)
./share/nls/fr_CA.ISO8859-1 missing (created)
./share/nls/fr_CA.ISO8859-15 missing (created)
./share/nls/fr_CH.ISO8859-1 missing (created)
./share/nls/fr_CH.ISO8859-15 missing (created)
./share/nls/fr_FR.ISO8859-1 missing (created)
./share/nls/fr_FR.ISO8859-15 missing (created)
./share/nls/hi_IN.ISCII-DEV missing (created)
./share/nls/hr_HR.ISO8859-2 missing (created)
./share/nls/hu_HU.ISO8859-2 missing (created)
./share/nls/is_IS.ISO8859-1 missing (created)
./share/nls/is_IS.ISO8859-15 missing (created)
./share/nls/it_CH.ISO8859-1 missing (created)
./share/nls/it_CH.ISO8859-15 missing (created)
./share/nls/it_IT.ISO8859-1 missing (created)
./share/nls/it_IT.ISO8859-15 missing (created)
./share/nls/ja_JP.SJIS missing (created)
./share/nls/ja_JP.eucJP missing (created)
./share/nls/ko_KR.eucKR missing (created)
./share/nls/la_LN.ISO8859-1 missing (created)
./share/nls/la_LN.ISO8859-15 missing (created)
./share/nls/la_LN.ISO8859-2 missing (created)
./share/nls/la_LN.ISO8859-4 missing (created)
./share/nls/la_LN.US-ASCII missing (created)
./share/nls/lt_LT.ISO8859-4 missing (created)
./share/nls/nl_BE.ISO8859-1 missing (created)
./share/nls/nl_BE.ISO8859-15 missing (created)
./share/nls/nl_NL.ISO8859-1 missing (created)
./share/nls/nl_NL.ISO8859-15 missing (created)
./share/nls/no_NO.ISO8859-1 missing (created)
./share/nls/no_NO.ISO8859-15 missing (created)
./share/nls/pl_PL.ISO8859-2 missing (created)
./share/nls/pt_BR.ISO8859-1 missing (created)
./share/nls/pt_PT.ISO8859-1 missing (created)
./share/nls/pt_PT.ISO8859-15 missing (created)
./share/nls/ro_RO.ISO8859-2 missing (created)
./share/nls/ru_RU.CP866 missing (created)
./share/nls/ru_RU.ISO8859-5 missing (created)
./share/nls/ru_RU.KOI8-R missing (created)
./share/nls/sk_SK.ISO8859-2 missing (created)
./share/nls/sl_SI.ISO8859-2 missing (created)
./share/nls/sv_SE.ISO8859-1 missing (created)
./share/nls/sv_SE.ISO8859-15 missing (created)
./share/nls/tr_TR.ISO8859-9 missing (created)
./share/nls/uk_UA.ISO8859-5 missing (created)
./share/nls/uk_UA.KOI8-U missing (created)
./share/nls/zh_CN.eucCN missing (created)
./share/nls/zh_TW.Big5 missing (created)
./share/skel missing (created)
./var missing (created)
./var/cache missing (created)
./var/db missing (created)
./var/log missing (created)
./var/run missing (created)
./var/spool missing (created)
./www missing (created)
xinstall: mkdir /opt/local/var/macports/build/_Users_kblazewicz_ports_python_py-pendulum/py39-pendulum/work/destroot/opt/local/share/doc/py39-pendulum
xinstall: mkdir /opt/local/var/macports/build/_Users_kblazewicz_ports_python_py-pendulum/py39-pendulum/work/destroot/opt/local/share/doc/py39-pendulum/examples
Executing:  cd "/opt/local/var/macports/build/_Users_kblazewicz_ports_python_py-pendulum/py39-pendulum/work/pendulum-2.1.2" && /opt/local/Library/Frameworks/Python.framework/Versions/3.9/bin/python3.9 -m install --verbose --destdir /opt/local/var/macports/build/_Users_kblazewicz_ports_python_py-pendulum/py39-pendulum/work/destroot
['/opt/local/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/install/_vendor/installer/src', '/opt/local/var/macports/build/_Users_kblazewicz_ports_python_py-pendulum/py39-pendulum/work/pendulum-2.1.2', '/opt/local/Library/Frameworks/Python.framework/Versions/3.9/lib/python39.zip', '/opt/local/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9', '/opt/local/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/lib-dynload', '/opt/local/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages']
ERROR Missing argument: wheel
Command failed:  cd "/opt/local/var/macports/build/_Users_kblazewicz_ports_python_py-pendulum/py39-pendulum/work/pendulum-2.1.2" && /opt/local/Library/Frameworks/Python.framework/Versions/3.9/bin/python3.9 -m install --verbose --destdir /opt/local/var/macports/build/_Users_kblazewicz_ports_python_py-pendulum/py39-pendulum/work/destroot
Exit code: 1
Error: Failed to destroot py39-pendulum: command execution failed
Error: See /opt/local/var/macports/logs/_Users_kblazewicz_ports_python_py-pendulum/py39-pendulum/main.log for details.
Error: Follow https://guide.macports.org/#project.tickets if you believe there is a bug.
Error: Processing of port py39-pendulum failed

Content of /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_python_py-pendulum/py39-pendulum/main.log is in attachment.

Running sudo port install py39-pendulum works on Intel-based machines because there are available pre-build binaries.

Attachments (1)

py39-pendulum-port.log (60.0 KB) - added by blazewicz (Krzysztof Błażewicz) 3 years ago.

Download all attachments as: .zip

Change History (13)

Changed 3 years ago by blazewicz (Krzysztof Błażewicz)

Attachment: py39-pendulum-port.log added

comment:1 Changed 3 years ago by reneeotten (Renee Otten)

Cc: xeron removed
Owner: set to xeron
Status: newassigned

comment:2 Changed 3 years ago by jmroot (Joshua Root)

This log appears to start with the build already partially complete. Please run sudo port clean py39-pendulum, attempt the install again, and attach the new log.

comment:3 Changed 3 years ago by blazewicz (Krzysztof Błażewicz)

Description: modified (diff)

comment:4 in reply to:  2 Changed 3 years ago by blazewicz (Krzysztof Błażewicz)

Replying to jmroot:

This log appears to start with the build already partially complete. Please run sudo port clean py39-pendulum, attempt the install again, and attach the new log.

I did and updated the ticket.

comment:5 Changed 3 years ago by xeron (Ivan Larionov)

I don't have M1 mac to test, but seems like it has something to do with wheel build.

comment:6 Changed 3 years ago by blazewicz (Krzysztof Błażewicz)

Also worth noting, this package is compatible with M1 macs. I can successfully install it running pip install pendulum in a virtual env.

comment:7 Changed 3 years ago by blazewicz (Krzysztof Błażewicz)

Description: modified (diff)
Summary: Can't install py-pendulum on M1 MacBook running Monterey 12.1py-pendulum won't build from source

comment:8 in reply to:  5 Changed 3 years ago by blazewicz (Krzysztof Błażewicz)

Replying to xeron:

I don't have M1 mac to test, but seems like it has something to do with wheel build.

Actually you don't need one. It worked on Intel machine because of pre-build binaries. Try running sudo port install -s py39-pendulum and you should get same error.

I've also updated the ticket title and description.

comment:9 Changed 3 years ago by blazewicz (Krzysztof Błażewicz)

Ok, I found the reason.

MacPorts creates wheel packages using tool called build which is invoked by its name with /path/to/python -m build command. The pendulum repository has in its root directory a script build.py. Local script takes takes precedence over global build tool that MacPorts expects.

This is why build always fails. It started with commit [e94c8a1f8531ced6e1d765849193e36a590425c9/macports-ports] which introduced {{{build}} tool 2 months ago.

Last edited 3 years ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

comment:10 Changed 3 years ago by jmroot (Joshua Root)

Ah, a local module named build would indeed be a problem here. Running python -m build is the documented way to build a wheel: https://github.com/pypa/build/blob/main/README.md

We can't really go back to pep517.build, it's deprecated and scheduled for removal. Unfortunately having this innocent-seeming script present in the build dir is creating an incompatibility with the PEP 517 front end of choice for distros.

comment:11 Changed 3 years ago by jmroot (Joshua Root)

Resolution: fixed
Status: assignedclosed

In 2a9b98736b82d1f751659a0b652d0ec350d26201/macports-ports (master):

py-pendulum: work around module conflict

The build.py shipped in the source dir conflicts with the 'build'
module used for PEP 517 builds.

Closes: #64425

comment:12 Changed 3 years ago by jmroot (Joshua Root)

It would probably be worth raising this issue upstream.

Note: See TracTickets for help on using tickets.