${PYTHON_REL} FreeBSDとは何ですか?

${PYTHON_REL} FreeBSDとは何ですか?

ポートの作成にエラーがあり、makefileを確認してみると問題のある行が見つかりました。

問題は、Python_Rel変数を変更する方法がわからないので、どのように修正するのかわからないということです。

場所はどこで、どのように変更するのですか?

答え1

これは make プログラムが読み込んだインクルードファイルで定義されます。たとえば、ポートmakefileの末尾に次の行があります。

.include <bsd.port.mk>

私のFreeBSD 10システムでは、インクルードファイルは次の場所にあり、次のもの/usr/ports/Mkgrep一致するものがあります。

$ fgrep -n PYTHON_REL *
bsd.python.mk:70:# PYTHON_REL           - Version number in numerical format, to ease
bsd.python.mk:353:PYTHON_REL=           341
bsd.python.mk:364:PYTHON_REL=           335
bsd.python.mk:375:PYTHON_REL=           325
bsd.python.mk:386:PYTHON_REL=           278
bsd.python.mk:394:PYTHON_REL!=          ${PYTHON_CMD} -c 'import sys; h = "%x" % sys.hexversion; \
bsd.python.mk:505:      defined(PYTHON_REL)
bsd.python.mk:553:.if ${PYTHON_REL} >= 320 && defined(PYTHON_PY3K_PLIST_HACK)
bsd.python.mk:569:.endif # ${PYTHON_REL} >= 320 && defined(PYTHON_PY3K_PLIST_HACK)

条件付きで含まれていますbsd.python.mkgrepあなたの友人です):

$ fgrep -n bsd.python.mk *
bsd.port.mk:398:#                                 Implies inclusion of bsd.python.mk. (Also see
bsd.port.mk:1446:.include "${PORTSDIR}/Mk/bsd.python.mk"
bsd.port.mk:1893:.include "${PORTSDIR}/Mk/bsd.python.mk"
bsd.python.mk:4:# $FreeBSD: head/Mk/bsd.python.mk 362364 2014-07-20 19:47:45Z antoine $
bsd.python.mk:9:Python_Pre_Include=             bsd.python.mk
bsd.python.mk:630:Python_Post_Include=                  bsd.python.mk
bsd.wx.mk:11:# variables (e.g. USE_PYTHON) are defined before it (this is a bsd.python.mk

ファイルのコメントは次のとおりです。

# USE_PYTHON    - If set, this port relies on the Python language. 
#                                 Implies inclusion of bsd.python.mk. (Also see 
#                                 that file for more information on USE_PYTHON_*
#                                 and USE_PYDISTUTILS). 

そしてそれ使用次の設定:

.if defined(USE_PYTHON) || defined(USE_PYTHON_BUILD) || defined(USE_PYTHON_RUN) 
.include "${PORTSDIR}/Mk/bsd.python.mk"
.endif

したがって、短い答えは、ポートmakefileに定義を含むファイルに必要な設定の1つが欠落していることですPYTHON_REL

USE_PYTHON = yes

READMEポートツリーの上部には、詳細を見つけるための場所を示す素晴らしいドキュメントがあります。

ポートを操作するときに変更を追跡したい場合があります。例えば、bsd.python.mk今後のアップデート内容に基づいてFreeBSDポート - Wiki:

bsd.python.mkをコンシューマーポートの使用とポートツリー別の.mkファイルに分割します(20140809: r364450 コミット)

変数PYTHON_RELはそのコミット以降定義されなくなり、廃止されたと見なされます(参照文書)。

ポートにとって重要な場合は、次のように変数を設定できます。

PYTHON_REL = ${PYTHON3_DEFAULT:S/.//}

関連情報