Summary: | editors/vim: build fails if PYTHON is OFF | ||
---|---|---|---|
Product: | Ports & Packages | Reporter: | Lorenzo Salvadore <salvadore> |
Component: | Individual Port(s) | Assignee: | Adam Weinberger <adamw> |
Status: | Closed FIXED | ||
Severity: | Affects Only Me | CC: | sunpoet, swills |
Priority: | --- | Flags: | bugzilla:
maintainer-feedback?
(adamw) |
Version: | Latest | ||
Hardware: | Any | ||
OS: | Any |
Description
Lorenzo Salvadore
2020-02-07 16:18:11 UTC
It happens when you have DEVELOPER=yes. r522484 adds a new REINPLACE_CMD check which is enabled when DEVELOPER=yes. It does not respect REINPLACE_ARGS (-i ''), thus runtime/tools/demoserver.py.bak is generated. Vim installs everything in runtime/tools [1] which fails in stage-qa for invalid shebang. There are at least 2 workaround: 1. Remove the demoserver.py.bak after REINPLACE_CMD. 2. Use USES=python:env [2]. It will replace the shebang with default python (/usr/local/bin/python3.7). [1] from src/Makefile: # install the runtime tools $(INSTALL_DATA_R) $(TOOLSSOURCE)/* $(DEST_TOOLS) [2] Index: Makefile =================================================================== --- Makefile (revision 525490) +++ Makefile (working copy) @@ -31,7 +31,6 @@ PLIST_SUB= VIM_VER=${VIM_VER} PORTDATA?= ${VIM_VER} PORTSCOUT= ignore:1 -REINPLACE_ARGS= -i '' SHEBANG_FILES= runtime/tools/demoserver.py runtime/tools/efm_perl.pl VIM_VER= ${PORTNAME}${PORTVERSION:R:S|.||g} @@ -134,6 +133,7 @@ PERL_USES= perl5 PYTHON_USES= python +PYTHON_USES_OFF= python:env RUBY_CONFIGURE_ENABLE= rubyinterp RUBY_USE= RUBY=yes @@ -167,8 +167,6 @@ ${ECHO_CMD} '#define SYS_GVIMRC_FILE "'${ETCDIR}'/gvimrc"' >> ${WRKSRC}/src/feature.h ${REINPLACE_CMD} -e 's|-liconv|${ICONV_LIB}|g; s|/usr/local|${LOCALBASE}|g' \ ${WRKSRC}/src/auto/configure -# Work around qa-check shebang error - ${REINPLACE_CMD} -e 1d ${WRKSRC}/runtime/tools/demoserver.py post-configure: # Needed when devel/libsysinfo is installed: (In reply to Sunpoet Po-Chuan Hsieh from comment #1) Thank you very much. I think it would have been a good idea to warn people of this change in REINPLACE_CMD. If a warning has indeed been sent, I missed it, sorry. In any case, I see no note about it in UPDATING: it might be a good idea to add one. Hi Sunpoet, I’m on shift and won’t be back until late tonight. Can you (or anyone else interested) please commit this? A commit references this bug: Author: sunpoet Date: Mon Feb 10 18:47:24 UTC 2020 New revision: 525748 URL: https://svnweb.freebsd.org/changeset/ports/525748 Log: Fix stage-qa of shebang with PYTHON option disabled after r522484 The error message (in poudriere) is as follows: ====> Running Q/A tests (stage-qa) Error: '/usr/local/bin/python' is an invalid shebang you need USES=shebangfix for 'share/vim/vim82/tools/demoserver.py.bak' r522484 adds a new REINPLACE_CMD check which is enabled when DEVELOPER=yes. It does not respect REINPLACE_ARGS (-i ''), thus runtime/tools/demoserver.py.bak is generated. Vim installs everything in runtime/tools [1] which fails in stage-qa for invalid shebang. This workaround uses USES=python:env. It will replace the shebang with default python (/usr/local/bin/python3.7). [1] from src/Makefile: # install the runtime tools $(INSTALL_DATA_R) $(TOOLSSOURCE)/* $(DEST_TOOLS) PR: 243961 Reported by: salvadore Submitted by: sunpoet (myself) Approved by: adamw (maintainer) Changes: head/editors/vim/Makefile (In reply to Lorenzo Salvadore from comment #2) It also affects other ports with REINPLACE_ARGS. swills@ is cc'd. He might have a better idea. (In reply to Adam Weinberger from comment #3) Hi Adam, I've committed the workaround. (In reply to Sunpoet Po-Chuan Hsieh from comment #5) Thanks for the warning and for the commit. I can confirm that the build now works fine with PYTHON off. I’m closing this PR now as I believe the problem is fixed. Please reopen if not. Sunpoet, thank you so much for doing all the legwork here! |