makemkvをfreebsd 10.2に移植する予定なので、次のmakefileを作成しました。
# New ports collection makefile for: makemkv
# Date created: 05 Mar 2012
# Date Updated: 10 April 2016
# Whom: kappei84
#
# $FreeBSD$
#
PORTNAME= makemkv
PORTVERSION= 1.9.9
CATEGORIES= multimedia
DISTNAME= ${PORTNAME}-oss-${PORTVERSION}${EXTRACT_SUFFIX}
MASTER_SITES= http://www.makemkv.com/download/
# Prefix for the pkp-plist
#PLIST_SUB= DATADIR=${PREFIX}
# Missing qt4/qt5 dependency check in case the port is built with --enable-gui
BUILD_DEPENDS= ffmpeg${FFMPEG_SUFX}:${PORTSDIR}/multimedia/ffmpeg${FFMPEG_SUFX}
MAINTAINER=
COMMENT= Make MKV from Blu-ray and DVD
GNU_CONFIGURE= yes
OPTIONS_DEFINE= GUI
.include <bsd.port.options.mk>
.if ${PORT_OPTIONS:MGUI}
CONFIGURE_ARGS+= --enable-gui
.else
CONFIGURE_ARGS+= --disable-gui
.endif # GUI
# flags for the configure script
CPPFLAGS+= -I${LOCALBASE}/include
LIBS+= -L${LOCALBASE}/lib
MAKEFILE= Makefile
USES= gmake
USE_OPENSSL= yes
USE_LDCONFIG= yes
USE_QT_VER= 4
QT_COMPONENTS= qmake gui svg webkit xml moc uic rcc imageformats
do-install:
.if ${PORT_OPTIONS:MGUI}
${INSTALL_PROGRAM} ${WRKSRC}/out/${PORTNAME} ${PREFIX}/bin
.endif
.for i in libdriveio.so.0 libmakemkv.so.1 libmmbd.so.0
${INSTALL_PROGRAM} ${WRKSRC}/out/${i} ${PREFIX}/lib
.endfor
@ cd ${PREFIX}/lib ; \
${LN} -sf libdriveio.so.0 libdriveio.so ; \
${LN} -sf libmakemkv.so.1 libmakemkv.so ; \
${LN} -sf libmmbd.so.0 libmmbd.so
.include <bsd.port.mk>
このメイクファイルは、3つのライブラリを生成するために必要なすべてのソースファイルをコンパイルして生成するソースアプリケーションのMakefileを参照します。libdriveio.so、libmakemkv.so.1そしてlibmmbd.so.0にコピーされます/usr/ローカル/libインストール後。以下のログに示すように、この時点まではすべてがうまく実行されました。
gmake[2]: Leaving directory '/usr/ports/multimedia/makemkv/work/makemkv-oss-1.9.9'
===> Staging for makemkv-1.9.9
===> Generating temporary packing list
install -s -m 555 /usr/ports/multimedia/makemkv/work/makemkv-oss-1.9.9/out/libdriveio.so.0 /usr/local/lib
install -s -m 555 /usr/ports/multimedia/makemkv/work/makemkv-oss-1.9.9/out/libmakemkv.so.1 /usr/local/lib
install -s -m 555 /usr/ports/multimedia/makemkv/work/makemkv-oss-1.9.9/out/libmmbd.so.0 /usr/local/lib
私が得られないのは、インストール後に実行される最後のステップである登録ステップです。
====> Compressing man pages (compress-man)
===> Installing for makemkv-1.9.9
===> Checking if makemkv already installed
===> Registering installation for makemkv-1.9.9
pkg-static: Unable to access file /usr/ports/multimedia/makemkv/work/stage/lib/libdriveio.so: No such file or directory
pkg-static: Unable to access file /usr/ports/multimedia/makemkv/work/stage/lib/libdriveio.so.0: No such file or directory
pkg-static: Unable to access file /usr/ports/multimedia/makemkv/work/stage/lib/libmakemkv.so: No such file or directory
pkg-static: Unable to access file /usr/ports/multimedia/makemkv/work/stage/lib/libmakemkv.so.1: No such file or directory
pkg-static: Unable to access file /usr/ports/multimedia/makemkv/work/stage/lib/libmmbd.so.0: No such file or directory
pkg-static: Unable to access file /usr/ports/multimedia/makemkv/work/stage/lib/libmmbd.so: No such file or directory
*** Error code 74
Stop.
make[1]: stopped in /usr/ports/multimedia/makemkv
*** Error code 1
Stop.
make: stopped in /usr/ports/multimedia/makemkv
ご覧のとおり、pkg-plist というファイルにリストされている一部のファイルが予想されるパスに見つからないため、インストールが失敗します。
pkg-staticがチェックする必要があるデフォルトのフォルダを回避または変更する方法はありますか?最初のポートなので、この手順を実行してpkg-plistが必要ですか?それとも、デフォルトライブラリが正しいパスにコピーされたため、そのファイルも削除できますか?
答え1
あなたのMakefileが直接インストールしようとしているようです${PREFIX}
。これはいいえ最近の仕事はどうなりますか?
にインストールする必要があります。これは、ターゲットディレクトリがミラーリングされる${STAGEDIR}${PREFIX}
準備領域です。${WRKDIR}
呼び出された基本項目はmake install
そこからファイルをインポートし、これが登録が機能する方法です。
詳しくはこちらをご覧ください。
https://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/special.html#staging
しかし、ご質問がある場合は、いつでもコメントを残してください。