diff options
Diffstat (limited to 'mk/emulator/pkg-rpm.mk')
-rw-r--r-- | mk/emulator/pkg-rpm.mk | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/mk/emulator/pkg-rpm.mk b/mk/emulator/pkg-rpm.mk new file mode 100644 index 00000000000..493badc15e5 --- /dev/null +++ b/mk/emulator/pkg-rpm.mk @@ -0,0 +1,110 @@ +# $NetBSD: pkg-rpm.mk,v 1.1 2007/07/29 05:19:43 jlam Exp $ +# +# RPM package format +# +# Package-settable variables: +# +# RPM2PKG_PLIST +# This is the path to the PLIST created by rpm2pkg(8) which will +# list the files and directories extracted from the RPMs. If +# this is empty, then no PLIST is created. +# +# Default value: ${WRKDIR}/.PLIST.rpm2pkg +# +# RPM2PKG_PREFIX +# This is the directory under which the contents of the RPMs will +# be extracted. This directory is stripped from the paths which +# are stored in ${RPM2PKG_PLIST}. +# +# Default value: ${WRKDIR} +# +# RPM2PKG_SUBPREFIX +# This is the subdirectory under ${RPM2PKG_PREFIX} within which +# the RPMs are directly extracted. If this is empty, then the +# RPMs are extracted directly into ${RPM2PKG_PREFIX}. +# +# Default value: empty +# +# RPM2PKG_STRIP +# This is the number of path components to strip from the head +# of paths of files and directories stored in the RPMs during +# extraction. RPMs usually store all paths with a leading path +# component of ``./''. +# +# Default value: 1 +# +# RPM2PKG_STAGE +# Stage at which to run the ``extract-rpm'' target. +# +# Default value: do-extract +# +# RPMFILES +# The list of paths to RPMs to extract using rpm2pkg(8). +# +# Default value: all *.rpm files in DISTFILES located in ${_DISTDIR} +# +# RPMIGNOREPATH +# The list of files or paths to skip during extraction of the RPMs. +# +# Default value: undefined +# +# Public targets: +# +# extract-rpm +# Runs rpm2pkg(8) with the appropriate arguments based on the +# RPM* variables set in the package Makefile to extract the +# files listed in RPMFILES. +# + +BUILD_DEPENDS+= rpm2pkg>=2.1:../../pkgtools/rpm2pkg +EVAL_PREFIX+= _RPM2PKG_PREFIX=rpm2pkg +RPM2PKG= ${_RPM2PKG_PREFIX}/sbin/rpm2pkg + +RPMFILES?= ${DISTFILES:M*.rpm:S/^/${_DISTDIR}\//} +BUILD_DEFS+= RPMFILES +.if defined(RPMIGNOREPATH) +BUILD_DEFS+= RPMIGNOREPATH +.endif + +RPM2PKGSTRIP?= ${RPM2PKG_STRIP} + +RPM2PKG_STRIP?= 1 +RPM2PKG_PREFIX?= ${WRKDIR} +RPM2PKG_SUBPREFIX?= # empty +RPM2PKG_PLIST?= ${WRKDIR}/.PLIST.rpm2pkg + +# By default, extract the RPMs during the do-extract step. +RPM2PKG_STAGE?= do-extract + +RPM2PKG_ARGS_DFLT= -d ${RPM2PKG_PREFIX:Q} +.if !empty(RPM2PKG_SUBPREFIX) +RPM2PKG_ARGS_DFLT+= -p ${RPM2PKG_SUBPREFIX:Q} +.endif +.if !empty(RPM2PKG_PLIST) +RPM2PKG_ARGS_DFLT+= -f ${RPM2PKG_PLIST:Q} +.endif +.if empty(RPM2PKG_STRIP:M0) +RPM2PKG_ARGS_DFLT+= -s ${RPM2PKG_STRIP} +.endif +.for _ignoredir_ in ${RPMIGNOREPATH} +RPM2PKG_ARGS_DFLT+= -i ${_ignoredir_} +.endfor +RPM2PKG_ARGS?= ${RPM2PKG_ARGS_DFLT} + +PLIST_SRC_DFLT+= ${RPM2PKG_PLIST} + +# We handle the extraction of the RPMs in the extract-rpm target below. +EXTRACT_ONLY?= # empty + +# Usually, packages we install via RPMs also install shared libraries. +_EMUL_RUN_LDCONFIG= yes + +.PHONY: extract-rpm +extract-rpm: + @${STEP_MSG} "Extracting RPM files" +.if !empty(RPM2PKG_PLIST) + ${RUN} ${RM} -f ${RPM2PKG_PLIST} +.endif + ${RUN} ${RPM2PKG} ${RPM2PKG_ARGS} ${RPMFILES} + +${RPM2PKG_STAGE}: extract-rpm |