pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/mk Added an experimental target "import" that makes it...



details:   https://anonhg.NetBSD.org/pkgsrc/rev/315fe80b7df6
branches:  trunk
changeset: 396540:315fe80b7df6
user:      rillig <rillig%pkgsrc.org@localhost>
date:      Sun Jul 26 21:36:38 2009 +0000

description:
Added an experimental target "import" that makes it easier to import
packages from pkgsrc-wip and other sources.

diffstat:

 mk/bsd.pkg.mk     |    5 ++-
 mk/misc/import.mk |  108 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 112 insertions(+), 1 deletions(-)

diffs (129 lines):

diff -r cdf20f5f36e7 -r 315fe80b7df6 mk/bsd.pkg.mk
--- a/mk/bsd.pkg.mk     Sun Jul 26 21:30:28 2009 +0000
+++ b/mk/bsd.pkg.mk     Sun Jul 26 21:36:38 2009 +0000
@@ -1,4 +1,4 @@
-#      $NetBSD: bsd.pkg.mk,v 1.1957 2009/05/26 06:03:02 obache Exp $
+#      $NetBSD: bsd.pkg.mk,v 1.1958 2009/07/26 21:36:38 rillig Exp $
 #
 # This file is in the public domain.
 #
@@ -801,4 +801,7 @@
 .  include "bsd.pkg.debug.mk"
 .endif
 .include "misc/warnings.mk"
+.if make(import)
+.include "misc/import.mk"
+.endif
 .include "misc/can-be-built-here.mk"
diff -r cdf20f5f36e7 -r 315fe80b7df6 mk/misc/import.mk
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/mk/misc/import.mk Sun Jul 26 21:36:38 2009 +0000
@@ -0,0 +1,108 @@
+# $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



Home | Main Index | Thread Index | Old Index