99fbe40af6
packages from pkgsrc-wip and other sources.
108 lines
3.4 KiB
Makefile
108 lines
3.4 KiB
Makefile
# $NetBSD: import.mk,v 1.1 2009/07/26 21:36:38 rillig Exp $
|
|
#
|
|
|
|
# import:
|
|
# Imports a package from the outside into pkgsrc.
|
|
#
|
|
# Command line parameters:
|
|
#
|
|
# FROM (optional when you are in a pkgsrc-wip package)
|
|
# The source where the package comes from. A common value
|
|
# is "pkgsrc-wip" or an empty string.
|
|
#
|
|
# CATEGORY
|
|
# The main category of the package. This is where the package
|
|
# gets imported.
|
|
#
|
|
# BY (optional)
|
|
# The name or mail address of the original package builder.
|
|
# This is used in the commit message.
|
|
#
|
|
# NETBSD_LOGIN_NAME
|
|
# The name of your account on cvs.NetBSD.org. Is used for
|
|
# recording the change in doc/CHANGES.
|
|
#
|
|
# keywords: wip pkgsrc-wip
|
|
#
|
|
|
|
_IMPORT_ERRORS= # none
|
|
|
|
_IMPORT_FROM= # nothing but a leading space
|
|
.if defined(FROM) && !empty(FROM)
|
|
_IMPORT_FROM+= from ${FROM}
|
|
.elif !empty(PKGPATH:Mwip/*)
|
|
_IMPORT_FROM+= from pkgsrc-wip
|
|
.else
|
|
_IMPORT_ERRORS+= "[import.mk] You must set FROM."
|
|
.endif
|
|
.if ${CATEGORY:U} == ""
|
|
_IMPORT_ERRORS+= "[import.mk] You must set CATEGORY."
|
|
.endif
|
|
.if exists(${.CURDIR}/TODO)
|
|
_IMPORT_ERRORS+= "[import.mk] Don't import packages that have something TODO."
|
|
.endif
|
|
.if exists(${PKGSRCDIR}/${CATEGORY:Unonexistent}/${PKGPATH:T}/Makefile)
|
|
_IMPORT_ERRORS+= "[import.mk] The package ${CATEGORY}/${PKGPATH:T} already exists."
|
|
.endif
|
|
.if ${_EXPERIMENTAL} != "yes"
|
|
_IMPORT_ERRORS+= "[import.mk] The \"import\" target is experimental."
|
|
.endif
|
|
|
|
_IMPORT_YEAR!= date -u +%Y
|
|
_IMPORT_TODAY!= date -u +%Y-%m-%d
|
|
_IMPORT_CHANGES= ${PKGSRCDIR}/doc/CHANGES-${_IMPORT_YEAR}
|
|
|
|
.PHONY: import _import-check _import-import _import-add-change _import-remove
|
|
import: _import-check _import-import _import-add-change _import-remove
|
|
|
|
_import-check:
|
|
.if !empty(_IMPORT_ERRORS)
|
|
${RUN} ${_IMPORT_ERRORS:@e@ ${ERROR_MSG} ${e:Q}; @} ${FALSE}
|
|
.endif
|
|
${RUN} pkglint --import -Wall
|
|
|
|
_import-import:
|
|
@${STEP_MSG} "Importing ${PKGNAME}."
|
|
${RUN} \
|
|
import_msg=`set -e; \
|
|
{ ${ECHO} "Imported ${PKGBASE}${_IMPORT_FROM}."; \
|
|
${ECHO} ""; \
|
|
${CAT} DESCR; \
|
|
case ${BY:Q}"" in \
|
|
"") ;; \
|
|
*) ${ECHO} ""; ${ECHO} "Packaged by ${BY}.";; \
|
|
esac; \
|
|
}`; \
|
|
cvs -d cvs.netbsd.org:/cvsroot import \
|
|
-m "$$import_msg" \
|
|
pkgsrc/${CATEGORY}/${PKGPATH:T} \
|
|
TNF pkgsrc-base; \
|
|
${RM} -f "$$import_msg"
|
|
|
|
_import-add-change:
|
|
@${STEP_MSG} "Adding CHANGES entry."
|
|
${RUN} cd ${PKGSRCDIR}/doc && cvs update ${_IMPORT_CHANGES:T}
|
|
${RUN} printf "\\tAdded %s version %s [%s %s]\\n" \
|
|
${CATEGORY}/${PKGPATH:T} ${PKGVERSION} \
|
|
${NETBSD_LOGIN_NAME} ${_IMPORT_TODAY} \
|
|
>> ${_IMPORT_CHANGES}
|
|
${RUN} cd ${PKGSRCDIR}/doc && cvs commit \
|
|
-m "Imported ${CATEGORY}/${PKGPATH:T}${_IMPORT_FROM}." \
|
|
${_IMPORT_CHANGES:T}
|
|
@${STEP_MSG} "Loading the new package from CVS."
|
|
${RUN} cd ${PKGSRCDIR}/${CATEGORY} && cvs update Makefile ${PKGPATH:T}
|
|
@${STEP_MSG} "Adding the package to the category Makefile."
|
|
${RUN} cd ${PKGSRCDIR}/${CATEGORY} && (pkglint -F >/dev/null || ${TRUE}) && pkglint -q
|
|
@${STEP_MSG} "Committing the modified category Makefile."
|
|
${RUN} cd ${PKGSRCDIR}/${CATEGORY} && cvs commit -m "Added ${PKGPATH:T}." Makefile
|
|
|
|
_IMPORT_REMOVE_FILES!= ls -d * patches/* files/* 2>/dev/null || ${TRUE}
|
|
_IMPORT_REMOVE_FILES:= ${_IMPORT_REMOVE_FILES:NCVS:N*/CVS}
|
|
_import-remove:
|
|
${RUN} \
|
|
case ${PKGPATH} in \
|
|
wip/*) \
|
|
${STEP_MSG} "Removing ${PKGNAME} from pkgsrc-wip."; \
|
|
cvs rm -f ${_IMPORT_REMOVE_FILES}; \
|
|
cvs commit -m "Imported into pkgsrc as ${CATEGORY}/${PKGBASE}.";; \
|
|
esac
|