FreeBSD Bugzilla – Attachment 164037 Details for
Bug 204577
[NEW MODULE] Mk/Uses/nodejs.mk Framework for NodeJS projects/ports
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
patch
nodejs.patch (text/plain), 22.20 KB, created by
Yuri Victorovich
on 2015-12-10 11:18:00 UTC
(
hide
)
Description:
patch
Filename:
MIME Type:
Creator:
Yuri Victorovich
Created:
2015-12-10 11:18:00 UTC
Size:
22.20 KB
patch
obsolete
>diff -ruN Mk/Uses/nodejs.mk Mk/Uses/nodejs.mk >--- Mk/Uses/nodejs.mk 1969-12-31 16:00:00.000000000 -0800 >+++ Mk/Uses/nodejs.mk 2015-12-10 03:06:24.711165000 -0800 >@@ -0,0 +1,554 @@ >+# $FreeBSD$ >+# >+# Provide support for NodeJS based projects >+# >+# Feature: nodejs >+# Usage: USES=nodejs >+# >+# MAINTAINER: portmgr@FreeBSD.org >+ >+# NODE_SUB_PROJECTS - additional projects to extract into individual >+# directories. Distfile for the group with the name >+# of the sub-project is extracted into the sub-folder >+# with the same name. Build is also performed for >+# sub-projects. >+# NODE_SUB_MODULES - additional projects to insert as submodules into the >+# specific directories identified. Build is not >+# prformed for them. >+# NODE_RM_DIRS - directories to delete >+# NODE_USES - additional features enabled in nodejs module: >+# grunt - run grunt tasks as a part of the build >+# merge-pkg-deps - merge packageDependencies into dependencies in package.json >+# NODE_MODULES_ADD - add node module dependencies, in the format: {<dir>/}<module>:<version> >+# NODE_MODULES_DEL - delete node module dependencies, in the format: {<dir>/}<module> >+# NODE_FILES_TO_CLEAN - wildcards for files and directoroes that do not need to be installed >+ >+# Port workflow: >+# * It starts in the DEBUG mode. In DEBUG mode port can be built and run but >+# can't be committed. Developer can make changes to the port in the DEBUG mode. >+# * 'make makerelease' - brings the port to RELEASE mode, when it can be committed >+# * 'make makedebug' - brings the port back to DEBUG mode in order to make changes >+# * 'make printmode' - prints the current mode of the port >+# >+ >+# NOTE: archivers/gtar is used to make the distfile because FreeBSD tar(1) has a bug >+# that prevents it from producing the deterministic output in certain situations >+# (https://github.com/libarchive/libarchive/pull/623) >+# NOTE: some sections of package.json are deleted (ex. scripts/test) as a workaround >+# for the npm bug that causes package.json volatility >+# (https://github.com/npm/npm/issues/10406) >+ >+.if !defined(_INCLUDE_USES_NODE_MK) >+_INCLUDE_USES_NODE_MK= yes >+ >+FETCH_DEPENDS+= npm:${PORTSDIR}/www/npm \ >+ jq:${PORTSDIR}/textproc/jq \ >+ gtar:${PORTSDIR}/archivers/gtar >+BUILD_DEPENDS+= npm:${PORTSDIR}/www/npm \ >+ gmake:${PORTSDIR}/devel/gmake >+RUN_DEPENDS+= node:${PORTSDIR}/www/node >+ >+_NODE_DIR?= ${PORTNAME}-${PORTVERSION} >+ >+# commands >+NPM_CMD= ${LOCALBASE}/bin/npm >+NODE_CMD= ${LOCALBASE}/bin/node >+JQ_CMD= ${LOCALBASE}/bin/jq >+GTAR_CMD= ${LOCALBASE}/bin/gtar >+ >+#DISTRO_TAR_CMD= ${TAR} >+DISTRO_TAR_CMD= ${GTAR_CMD} >+ >+# variables >+_NODE_TMP_BASE_FETCH= ${DISTDIR}/${_NODE_DIR}.tmpdirs >+_NODE_TMP_BASE_BUILD= ${WRKDIR}/.tmpdirs >+_NODE_USERHOME_FETCH= ${_NODE_TMP_BASE_FETCH}/.userhome >+_NODE_TMP_FETCH= ${_NODE_TMP_BASE_FETCH}/.tmp >+_NODE_USERHOME_BUILD= ${_NODE_TMP_BASE_BUILD}/.userhome >+_NODE_TMP_BUILD= ${_NODE_TMP_BASE_BUILD}/.tmp >+_NODE_FAKE_GIT= ${_NODE_TMP_FETCH}/fake-git >+_NODE_FAKE_GMAKE= ${_NODE_TMP_BUILD}/gmake >+_NODE_NPMRC_FETCH= ${_NODE_USERHOME_FETCH}/.npmrc >+_MAKE_TMP_DIRS_FETCH= ${MKDIR} ${_NODE_USERHOME_FETCH} ${_NODE_TMP_FETCH} >+_MAKE_TMP_DIRS_BUILD= ${MKDIR} ${_NODE_USERHOME_BUILD} ${_NODE_TMP_BUILD} >+_CLEAN_TMP_DIRS_FETCH= ${RM} -r ${_NODE_TMP_BASE_FETCH} >+_CLEAN_TMP_DIRS_BUILD= ${RM} -r ${_NODE_TMP_BASE_BUILD} >+_INIT_TMP_DIRS_FETCH= ${_CLEAN_TMP_DIRS_FETCH} && ${_MAKE_TMP_DIRS_FETCH} >+_INIT_TMP_DIRS_BUILD= ${_CLEAN_TMP_DIRS_BUILD} && ${_MAKE_TMP_DIRS_BUILD} >+CFLAGS+= -I${LOCALBASE}/include/node >+CXXFLAGS+= -I${LOCALBASE}/include/node >+NPM_ENV+= C=${CC} CXX=${CXX} >+NPM_ENV_FETCH= ${NPM_ENV} HOME=${_NODE_USERHOME_FETCH} TMP=${_NODE_TMP_FETCH} PATH=${_NODE_TMP_FETCH}:${PATH} >+NPM_ENV_BUILD= ${NPM_ENV} HOME=${_NODE_USERHOME_BUILD} TMP=${_NODE_TMP_BUILD} PATH=${_NODE_TMP_BUILD}:${PATH} >+NPM_LOG_LEVEL?= warn >+NPM_FETCH_ARGS= --loglevel ${NPM_LOG_LEVEL} --ignore-scripts >+NPM_BUILD_ARGS= --loglevel ${NPM_LOG_LEVEL} --nodedir=${LOCALBASE} >+NPM_PRUNE_ARGS= --loglevel ${NPM_LOG_LEVEL} --production=true >+NPM_SHRINKWRAP_ARGS= --dev >+REINPLACE_ARGS= -i "" >+_NODE_PACKAGE_JSON= package.json >+_NODE_PACKAGE_EXISTS= [ -f ${_NODE_PACKAGE_JSON} ] >+SHRINKWRAP_NAME= npm-shrinkwrap.json >+SHRINKWRAP_FILE= ${FILESDIR}/${SHRINKWRAP_NAME} >+NODE_INSTALL_BASE:= ${LOCALBASE}/share/node-projects >+NODE_INSTALL_DIR:= ${NODE_INSTALL_BASE}/${PORTNAME} >+NODE_ORIG_DISTFILES:= ${DISTFILES} >+NODE_DISTFILE:= ${PORTNAME}-${PORTVERSION}-nodejs.tar.gz >+CKSUMFILES+= ${NODE_DISTFILE} >+_NODE_MASTER_SITE_BACKUP_URLS= ${MASTER_SITE_BACKUP}${NODE_DISTFILE} >+NPM_BUILD_DIR?= . >+NODE_FILES_TO_CLEAN+= .git* CVS .svn . >+NODE_FILES_TO_CLEAN+= .lock-wscript .wafpickle-N *.swp .DS_Store ._* npm-debug.log >+NODE_FILES_TO_CLEAN+= *.bak *.log *.bat file .travis.yml man *.info >+NODE_FILES_TO_CLEAN+= CHANGELOG CHANGELOG.md README README.* AUTHORS AUTHORS.* HISTORY HISTORY.* >+NODE_FILES_TO_CLEAN+= Makefile >+_NODE_DO_FAIL= return 1 >+ >+WRKSRC= ${WRKDIR}/${_NODE_DIR} >+ >+.if ! exists(${SHRINKWRAP_FILE}) >+NO_CHECKSUM= yes >+ ODE_DEBUG_MODE=yes >+node-remind-debug-mode: >+ @${ECHO_CMD} "(!!!)" >+ @${ECHO_CMD} "(!!!) Port ${PORTNAME} is in the DEBUG mode, run 'make makerelease' to finalize it" >+ @${ECHO_CMD} "(!!!)" >+node-assert-debug-mode: node-check-shrinkwrap-files >+node-assert-release-mode: node-check-shrinkwrap-files >+ @${ECHO} "(!!!)" >+ @${ECHO} "(!!!) already in the DEBUG mode" >+ @${ECHO} "(!!!)" >+ @${FALSE} >+node-print-mode: node-check-shrinkwrap-files >+ @${ECHO} "Port ${PORTNAME} is in the DEBUG mode" >+node-check-shrinkwrap-files: >+ @for sp in ${NODE_SUB_PROJECTS}; do \ >+ if [ -f ${FILESDIR}/$${sp}/${SHRINKWRAP_NAME} ]; then \ >+ ${ECHO} "(!!!) ERROR: shrinkwrap file for sub-project $${sp} exists in DEBUG mode!"; \ >+ ${FALSE}; \ >+ fi; \ >+ done >+.else >+node-remind-debug-mode: >+node-assert-debug-mode: node-check-shrinkwrap-files >+ @${ECHO} "(!!!)" >+ @${ECHO} "(!!!) already in RELEASE mode" >+ @${ECHO} "(!!!)" >+ @${FALSE} >+node-assert-release-mode: node-check-shrinkwrap-files >+node-print-mode: node-check-shrinkwrap-files >+ @${ECHO} "Port ${PORTNAME} is in the RELEASE mode" >+node-check-shrinkwrap-files: >+ @for sp in ${NODE_SUB_PROJECTS}; do \ >+ if ! [ -f ${FILESDIR}/$${sp}/${SHRINKWRAP_NAME} ]; then \ >+ ${ECHO} "(!!!) ERROR: shrinkwrap file for sub-project $${sp} is missing!"; \ >+ ${_NODE_DO_FAIL}; \ >+ fi; \ >+ done >+.endif >+ >+.for f in ${NODE_USES} >+_f:= ${f:C/\:.*//} >+.if ${_f}=="grunt" >+FETCH_DEPENDS+= grunt:${PORTSDIR}/devel/grunt >+GRUNT_CMD= ${LOCALBASE}/bin/grunt >+GRUNT_ENV+= HOME=${_NODE_USERHOME_BUILD} TMP=${_NODE_TMP_BUILD} PATH=${_NODE_TMP_BUILD}:${PATH} >+GRUNT_BUILD_ARGS+= >+NODE_GRUNT_TARGETS?= >+_NODE_USES_GRUNT= yes >+.elif ${_f}=="merge-pkg-deps" >+_NODE_USES_MERGE_PKG_DEPS= yes >+.endif >+.endfor >+ >+.if defined(NODE_SRCDIR) >+_NODE_DO_CD=node_modules/${NODE_SUBDIR} >+.else >+_NODE_DO_CD=. >+.endif >+_NODE_FETCH_WORKDIR=${DISTDIR} >+ >+node-delete-distfile: >+ @${RM} -f ${_NODE_FETCH_WORKDIR}/${NODE_DISTFILE} >+ >+# exported development mode targets >+printmode: node-print-mode >+makerelease: node-assert-debug-mode node-delete-distfile clean fetch node-make-shrinkwrap >+makedebug: node-assert-release-mode node-delete-shrinkwrap >+ >+node-make-shrinkwrap: >+ @(${ECHO} "===> Making npm-shrinkwrap set to fix component versions for ${PKGNAME}" && \ >+ ${_INIT_TMP_DIRS_FETCH} && \ >+ cd ${_NODE_FETCH_WORKDIR} && \ >+ ${RM} -rf ${_NODE_DIR} && \ >+ ${EXTRACT_CMD} ${EXTRACT_BEFORE_ARGS} ${NODE_DISTFILE} ${EXTRACT_AFTER_ARGS} && \ >+ cd ${_NODE_DIR}/${_NODE_DO_CD} && \ >+ (cd ${NPM_BUILD_DIR} && \ >+ ${NPM_ENV_FETCH} ${NPM_CMD} shrinkwrap ${NPM_SHRINKWRAP_ARGS} && \ >+ ${MKDIR} ${FILESDIR} && \ >+ ${MV} ${SHRINKWRAP_NAME} ${SHRINKWRAP_FILE}) && \ >+ for sp in ${NODE_SUB_PROJECTS}; do \ >+ (cd $${sp} && \ >+ ${NPM_ENV_FETCH} ${NPM_CMD} shrinkwrap ${NPM_SHRINKWRAP_ARGS} && \ >+ ${MKDIR} ${FILESDIR}/$${sp} && \ >+ ${MV} ${SHRINKWRAP_NAME} ${FILESDIR}/$${sp}/) || ${_NODE_DO_FAIL}; \ >+ done && \ >+ cd ${_NODE_FETCH_WORKDIR} && \ >+ ${RM} -r ${_NODE_DIR} && \ >+ ${RM} ${NODE_DISTFILE} && \ >+ ${_CLEAN_TMP_DIRS_FETCH}) && \ >+ ${ECHO} "-" && \ >+ ${ECHO} "- shrinkwrap file(s) have been generated, entering RELEASE mode" && \ >+ ${ECHO} "-" && \ >+ ${ECHO} "==> Re-fetching with shrinkwrap in RELEASE mode" && \ >+ ${MAKE} fetch && \ >+ ${ECHO} "-" && \ >+ ${ECHO} "- in RELEASE mode now, run 'make makesum'" && \ >+ ${ECHO} "-" >+ >+node-delete-shrinkwrap: node-assert-release-mode >+ @${RM} -f `${FIND} ${FILESDIR} -name ${SHRINKWRAP_NAME}` >+ @${ECHO} "-" >+ @${ECHO} "- shrinkwrap file(s) have been deleted, entering DEBUG mode" >+ @${ECHO} "-" >+ >+node-fakegit: .EXEC .PHONY >+ @${_INIT_TMP_DIRS_FETCH} && \ >+ (${ECHO} '#!/bin/sh'; \ >+ ${ECHO} ''; \ >+ ${ECHO} 'name="nodejs-fetch"'; \ >+ ${ECHO} 'DISTDIR="${DISTDIR}"'; \ >+ ${ECHO} 'NODE_ORIG_DISTFILES="${NODE_ORIG_DISTFILES:C@^([^:]+).*@\1@}"'; \ >+ ${ECHO} 'NODE_VERBOSE="${NODE_VERBOSE}"'; \ >+ ${ECHO} 'NODE_DEBUG="${NODE_DEBUG}"'; \ >+ ${ECHO} ''; \ >+ ${ECHO} 'msg() {'; \ >+ ${ECHO} ' [ "$$NODE_VERBOSE" = yes ] && echo "$${name}: $$1" >&2'; \ >+ ${ECHO} ' dbg_log "$${name}: $$1"'; \ >+ ${ECHO} '}'; \ >+ ${ECHO} 'err() {'; \ >+ ${ECHO} ' echo "$${name}: ERROR: $$1" >&2'; \ >+ ${ECHO} ' dbg_log "$${name}: ERROR: $$1"'; \ >+ ${ECHO} '}'; \ >+ ${ECHO} 'dbg_log() {'; \ >+ ${ECHO} ' [ "$$NODE_DEBUG" = yes ] && (echo "$$1" >>/tmp/nodejs-$$$$.log)'; \ >+ ${ECHO} '}'; \ >+ ${ECHO} ''; \ >+ ${ECHO} 'dbg_log "called with arguments: $$*"'; \ >+ ${ECHO} ''; \ >+ ${ECHO} 'cmd_clone_remote() {'; \ >+ ${ECHO} ' local mirror="$$1"'; \ >+ ${ECHO} ' local dir="$$2"'; \ >+ ${ECHO} ' msg "Git clone requested: mirror=$$mirror -> dir=$${dir}"'; \ >+ ${ECHO} ' local fname_regex=$$(echo $$mirror | sed -E "s/https:\/\/github\.com\/([^/]+)\/([^/]+)\.git$$/^\1-\2-[[:alnum:].]*_GH0.tar.gz$$/g")'; \ >+ ${ECHO} ' local fname=$$(find_file "$${fname_regex}")'; \ >+ ${ECHO} ' if [ -n "$${fname}" ]; then'; \ >+ ${ECHO} ' msg "Found distfile=$$fname for $$mirror"'; \ >+ ${ECHO} ' (cd $${dir} && tar xzf $${DISTDIR}/$${fname} --strip 1)'; \ >+ ${ECHO} ' return $$?'; \ >+ ${ECHO} ' else'; \ >+ ${ECHO} ' err "Failed to find distfile for $$mirror"'; \ >+ ${ECHO} ' return 1'; \ >+ ${ECHO} ' fi'; \ >+ ${ECHO} '}'; \ >+ ${ECHO} 'cmd_clone_local() {'; \ >+ ${ECHO} ' local src="$$1"'; \ >+ ${ECHO} ' local dst="$$2"'; \ >+ ${ECHO} ' msg "copy $$src -> $$dst"'; \ >+ ${ECHO} ' (cd $${src} && tar czf - .) | (cd $${dst} && tar xzf -)'; \ >+ ${ECHO} '}'; \ >+ ${ECHO} ''; \ >+ ${ECHO} 'cmd_checkout() {'; \ >+ ${ECHO} ' msg "do nothing for checkout of $$1 in `pwd`"'; \ >+ ${ECHO} '}'; \ >+ ${ECHO} ''; \ >+ ${ECHO} 'find_file() {'; \ >+ ${ECHO} ' for f in $${NODE_ORIG_DISTFILES}; do'; \ >+ ${ECHO} ' if expr "$${f}" : "$${fname_regex}" > /dev/null; then'; \ >+ ${ECHO} ' echo "$$f"'; \ >+ ${ECHO} ' return'; \ >+ ${ECHO} ' fi'; \ >+ ${ECHO} ' done'; \ >+ ${ECHO} '}'; \ >+ ${ECHO} ''; \ >+ ${ECHO} 'case $$1 in'; \ >+ ${ECHO} 'clone)'; \ >+ ${ECHO} ' shift'; \ >+ ${ECHO} ' while [ $$# -gt 0 ]; do'; \ >+ ${ECHO} ' key="$$1"'; \ >+ ${ECHO} ' case $$key in'; \ >+ ${ECHO} ' --template=*)'; \ >+ ${ECHO} ' ;;'; \ >+ ${ECHO} ' --mirror)'; \ >+ ${ECHO} ' MIRROR="$$2"'; \ >+ ${ECHO} ' shift'; \ >+ ${ECHO} ' ;;'; \ >+ ${ECHO} ' -*)'; \ >+ ${ECHO} ' err "Unknown argument: $$key" && exit 1'; \ >+ ${ECHO} ' ;;'; \ >+ ${ECHO} ' *)'; \ >+ ${ECHO} ' if [ $$# -eq 1 -a -n "$$MIRROR" ]; then'; \ >+ ${ECHO} ' cmd_clone_remote "$${MIRROR}" "$$key"'; \ >+ ${ECHO} ' exit $$?'; \ >+ ${ECHO} ' fi'; \ >+ ${ECHO} ' if [ $$# -eq 2 -a -z "$$MIRROR" ]; then'; \ >+ ${ECHO} ' cmd_clone_local "$$1" "$$2"'; \ >+ ${ECHO} ' exit $$?'; \ >+ ${ECHO} ' fi'; \ >+ ${ECHO} ' err "Unknown argument #=$$#: $$key"'; \ >+ ${ECHO} ' exit 1'; \ >+ ${ECHO} ' ;;'; \ >+ ${ECHO} ' esac'; \ >+ ${ECHO} ' shift'; \ >+ ${ECHO} ' done'; \ >+ ${ECHO} ' ;;'; \ >+ ${ECHO} 'rev-list)'; \ >+ ${ECHO} ' shift'; \ >+ ${ECHO} ' while [ $$# -gt 0 ]; do'; \ >+ ${ECHO} ' key="$$1"'; \ >+ ${ECHO} ' case $$key in'; \ >+ ${ECHO} ' -n1)'; \ >+ ${ECHO} ' shift'; \ >+ ${ECHO} ' [ $$# -eq 1 ] || ! err "Unknown argument: $$key" || exit 1'; \ >+ ${ECHO} ' msg "Returning same revision $$1"'; \ >+ ${ECHO} ' echo $$1'; \ >+ ${ECHO} ' exit 0'; \ >+ ${ECHO} ' ;;'; \ >+ ${ECHO} ' *)'; \ >+ ${ECHO} ' err "Unknown argument: $$key" && exit 1'; \ >+ ${ECHO} ' ;;'; \ >+ ${ECHO} ' esac'; \ >+ ${ECHO} ' shift'; \ >+ ${ECHO} ' done'; \ >+ ${ECHO} ' err "rev-list without arguments" && exit 1'; \ >+ ${ECHO} ' ;;'; \ >+ ${ECHO} 'checkout)'; \ >+ ${ECHO} ' shift'; \ >+ ${ECHO} ' if [ $$# -eq 1 ]; then'; \ >+ ${ECHO} ' cmd_checkout "$$1"'; \ >+ ${ECHO} ' exit 0'; \ >+ ${ECHO} ' fi'; \ >+ ${ECHO} ' ;;'; \ >+ ${ECHO} 'config)'; \ >+ ${ECHO} ' echo ""'; \ >+ ${ECHO} ' ;;'; \ >+ ${ECHO} '*)'; \ >+ ${ECHO} ' err "Unknown command: $$1" && exit 1'; \ >+ ${ECHO} ' ;;'; \ >+ ${ECHO} 'esac'; \ >+ ${ECHO} '') > ${_NODE_FAKE_GIT} >+ @${CHMOD} +x ${_NODE_FAKE_GIT} >+ @${ECHO} "git = ${_NODE_FAKE_GIT}" >> ${_NODE_NPMRC_FETCH} >+ >+fakemake: .EXEC .PHONY >+ @${_INIT_TMP_DIRS_BUILD} && \ >+ (${ECHO} '#!/bin/sh'; \ >+ ${ECHO} ''; \ >+ ${ECHO} '${MAKE_ENV} PATH=$$PATH:${LOCALBASE}/bin ${LOCALBASE}/bin/gmake ${MAKE_ARGS} $$@'; \ >+ ${ECHO} '') >> ${_NODE_FAKE_GMAKE} >+ @${CHMOD} +x ${_NODE_FAKE_GMAKE} >+ >+.if !target(nodejs-patch-fetch) >+nodejs-patch-fetch: >+.endif >+ >+_USES_fetch+= 750:npm-fetch >+npm-fetch: node-fakegit >+ @${MKDIR} ${_NODE_FETCH_WORKDIR} >+ @cd ${_NODE_FETCH_WORKDIR}; \ >+ force_fetch=false; \ >+ for afile in ${FORCE_FETCH}; do \ >+ afile=$${afile##*/}; \ >+ if [ "x$$afile" = "x${NODE_DISTFILE}" ]; then \ >+ force_fetch=true; \ >+ fi; \ >+ done; \ >+ if [ ! -f ${NODE_DISTFILE} -o "$$force_fetch" = "true" ]; then \ >+ ${RM} -rf ${_NODE_PROJECT_FILE} ${_NODE_DIR} ${NODE_DISTFILE}; \ >+ for url in ${_NODE_MASTER_SITE_BACKUP_URLS}; do \ >+ if ${ECHO_MSG} "===> Attempting to fetch ${PORTNAME} from the master backup site" && \ >+ ${SETENV} ${FETCH_ENV} ${FETCH_CMD} ${FETCH_BEFORE_ARGS} $${url} ${FETCH_AFTER_ARGS}; then \ >+ return 0; \ >+ fi; \ >+ done && \ >+ if ${ECHO_MSG} "===> Extracting node project source for ${PKGNAME}" && \ >+ ${MKDIR} ${_NODE_DIR} && \ >+ for main_distfile in ${NODE_ORIG_DISTFILES:N*\:*}; do \ >+ ${EXTRACT_CMD} ${EXTRACT_BEFORE_ARGS} $${main_distfile} ${EXTRACT_AFTER_ARGS} \ >+ -C ${_NODE_DIR} --strip 1 || ${_NODE_DO_FAIL}; \ >+ done && \ >+ for sp in ${NODE_SUB_PROJECTS}; do \ >+ for df in `${ECHO} ${NODE_ORIG_DISTFILES} | tr ' ' '\n' | grep :$${sp}$$`; do \ >+ ${MKDIR} ${_NODE_DIR}/$${sp} && \ >+ ${EXTRACT_CMD} ${EXTRACT_BEFORE_ARGS} ${DISTDIR}/`${ECHO} $${df} | ${SED} -e 's/:[^:]*$$//g'` ${EXTRACT_AFTER_ARGS} \ >+ -C ${_NODE_DIR}/$${sp} --strip 1 || ${_NODE_DO_FAIL}; \ >+ done; \ >+ done && \ >+ (cd ${_NODE_DIR} && ${MAKE} -f ${MASTERDIR}/Makefile nodejs-patch-fetch) && \ >+ for sm in ${NODE_SUB_MODULES}; do \ >+ sm_path=$${sm%%:*}; \ >+ sm_group=$${sm##*:}; \ >+ for df in `${ECHO} ${NODE_ORIG_DISTFILES} | tr ' ' '\n' | grep :$${sm_group}$$`; do \ >+ ${EXTRACT_CMD} ${EXTRACT_BEFORE_ARGS} ${DISTDIR}/`${ECHO} $${df} | ${SED} -e 's/:[^:]*$$//g'` ${EXTRACT_AFTER_ARGS} \ >+ -C ${_NODE_DIR}/$${sm_path} --strip 1 || ${_NODE_DO_FAIL}; \ >+ done; \ >+ done && \ >+ ${ECHO_MSG} "===> Preparing the node project for ${PKGNAME}" && \ >+ cd ${_NODE_DIR} && \ >+ ([ -z "${NODE_SRCDIR}" ] || \ >+ (${MKDIR} node_modules && \ >+ ${MV} ${NODE_SRCDIR} node_modules/${NODE_SUBDIR} \ >+ ) \ >+ ) && cd ${_NODE_DO_CD} && \ >+ for m in ${NODE_MODULES_ADD}; do \ >+ if expr $$m : ".*@.*@.*" > /dev/null ; then \ >+ mloc=$${m%@*@*}; \ >+ mdir=$${m%@*}; \ >+ mdir=$${mdir#*@}; \ >+ mmod=$${m#*@*@}; \ >+ elif expr $$m : ".*@.*" > /dev/null ; then \ >+ mloc=dependencies; \ >+ mdir=$${m%@*}; \ >+ mmod=$${m#*@}; \ >+ else \ >+ mloc=dependencies; \ >+ mdir=.; \ >+ mmod=$$m; \ >+ fi && \ >+ mloc=$$(${ECHO} $$mloc | ${SED} -E 's/^(dev|peer|bundle)$$/\1Dependencies/') && \ >+ (cd $$mdir && ${JQ_CMD} -s ".[0] * `echo $$mmod | sed -E 's/^([[:alnum:]_-]+):(.+)$$/{"'$$mloc'":{"\\1":"\\2"}}/'`" \ >+ package.json > package-new.json && ${MV} package-new.json package.json) || ${_NODE_DO_FAIL}; \ >+ done && \ >+ for m in ${NODE_MODULES_DEL}; do \ >+ if expr $$m : ".*@.*@.*" > /dev/null ; then \ >+ mloc=$${m%@*@*}; \ >+ mdir=$${m%@*}; \ >+ mdir=$${mdir#*@}; \ >+ mmod=$${m#*@*@}; \ >+ elif expr $$m : ".*@.*" > /dev/null ; then \ >+ mloc=dependencies; \ >+ mdir=$${m%@*}; \ >+ mmod=$${m#*@}; \ >+ else \ >+ mloc=dependencies; \ >+ mdir=.; \ >+ mmod=$$m; \ >+ fi && \ >+ mloc=$$(${ECHO} $$mloc | ${SED} -E 's/^(dev|peer|bundle)$$/\1Dependencies/') && \ >+ (cd $$mdir && ${JQ_CMD} -s ".[0] | del(.[\"$$mloc\"][\"$$mmod\"])" \ >+ package.json > package-new.json && ${MV} package-new.json package.json) || ${_NODE_DO_FAIL}; \ >+ done && \ >+ ([ -z ${_NODE_USES_MERGE_PKG_DEPS} ] || \ >+ (${JQ_CMD} -s '(.[0] | del(.["packageDependencies"])) * (.[0]["packageDependencies"] | {"dependencies": .})' \ >+ package.json > package-new.json && ${MV} package-new.json package.json)) && \ >+ ([ ! -f "${SHRINKWRAP_FILE}" ] || ${CP} ${SHRINKWRAP_FILE} .) && \ >+ for sp in ${NODE_SUB_PROJECTS}; do \ >+ (cd $${sp} && \ >+ ([ ! -f "${FILESDIR}/$${sp}/${SHRINKWRAP_NAME}" ] || ${CP} ${FILESDIR}/$${sp}/${SHRINKWRAP_NAME} npm-shrinkwrap.json)); \ >+ done && \ >+ ${ECHO_MSG} "===> Downloading the nodejs dependencies for ${PKGNAME}" && \ >+ (cd ${NPM_BUILD_DIR} && ${_NODE_PACKAGE_EXISTS} && ${NPM_ENV_FETCH} ${NPM_CMD} install ${NPM_FETCH_ARGS}) && \ >+ for sp in ${NODE_SUB_PROJECTS}; do \ >+ ${ECHO_MSG} "===> Downloading the nodejs dependencies for ${PKGNAME}/$${sp}" && \ >+ (cd $${sp} && ${NPM_ENV_FETCH} ${NPM_CMD} install ${NPM_FETCH_ARGS}) || ${_NODE_DO_FAIL}; \ >+ done && \ >+ for dir in ${NODE_RM_DIRS}; do \ >+ ${RM} -rf ${NPM_BUILD_DIR}/$${dir}; \ >+ done && \ >+ cd ${_NODE_FETCH_WORKDIR} && \ >+ ${_CLEAN_TMP_DIRS_FETCH} && \ >+ ${ECHO_MSG} "===> Applying the workaround for the package volatility bug for ${PKGNAME}" && \ >+ ${FIND} ${_NODE_DIR} -name package.json -and -exec test -s {} \; -print0 | \ >+ ${XARGS} -0 -n1 -I @@ -S 10000 \ >+ ${SH} -c "${JQ_CMD} -s '.[0] | (del(.[\"scripts\"]) \ >+ * ((select(.scripts.preinstall) | {scripts:{preinstall: .scripts.preinstall}}) // { }) \ >+ * ((select(.scripts.install) | {scripts:{install: .scripts.install}}) // { }) \ >+ * ((select(.scripts.postinstall) | {scripts:{postinstall: .scripts.postinstall}}) // { })) \ >+ | del(.[\"scripts\"] | select(length==0)) \ >+ | del(.[\"man\"])' \ >+ @@ > @@.new && ${MV} @@.new @@" && \ >+ ${ECHO_MSG} "===> Packaging the final distfile for ${PKGNAME}" && \ >+ ${FIND} -d ${_NODE_DIR} -and -exec ${TOUCH} -h -m -a -d 1970-01-01T00:00:00Z {} \; && \ >+ ${FIND} ${_NODE_DIR} -print0 | \ >+ LC_ALL=C sort -z | \ >+ ${DISTRO_TAR_CMD} cf - \ >+ --no-recursion --null -T - | \ >+ gzip -9n > ${NODE_DISTFILE} && \ >+ ${RM} -rf ${_NODE_DIR}; then \ >+ return 0; \ >+ fi; \ >+ ${_CLEAN_TMP_DIRS_FETCH} && \ >+ ${ECHO_MSG} "===> Fetch failed for ${PKGNAME}"; \ >+ ${FALSE}; \ >+ fi; >+ >+do-extract: >+ @cd ${WRKDIR} && \ >+ tar xzf ${DISTDIR}/${NODE_DISTFILE} >+ >+_USES_patch+= 750:patch-gyp-cflags >+patch-gyp-cflags: >+ @${FIND} ${WRKSRC} -name "*.gyp" -and -exec ${REINPLACE_CMD} -e "s|cflags': \[|cflags': ['-I${LOCALBASE}/include/node',|g" {} \; >+ >+npm-build: node-remind-debug-mode fakemake >+ @cd ${WRKSRC}/${_NODE_DO_CD} && \ >+ ${ECHO} "===> NPM build for ${PKGNAME}" && \ >+ (cd ${NPM_BUILD_DIR} && ${_NODE_PACKAGE_EXISTS} && ${NPM_ENV_BUILD} ${NPM_CMD} rebuild ${NPM_BUILD_ARGS}) && \ >+ for sp in ${NODE_SUB_PROJECTS}; do \ >+ ${ECHO} "===> NPM build for ${PKGNAME}/$${sp}" && \ >+ (cd $${sp} && ${NPM_ENV_BUILD} ${NPM_CMD} rebuild ${NPM_BUILD_ARGS}); \ >+ done && \ >+ ${_CLEAN_TMP_DIRS_BUILD} >+ >+.if defined(_NODE_USES_GRUNT) >+grunt-build: >+ @${ECHO} "===> Grunt build for ${PKGNAME}" >+ @cd ${WRKSRC}/${_NODE_DO_CD} && \ >+ ${GRUNT_ENV} ${GRUNT_CMD} ${NODE_GRUNT_TARGETS} ${GRUNT_BUILD_ARGS} >+opt-grunt-build: grunt-build >+.else >+opt-grunt-build: >+.endif >+ >+.if !target(do-pre-build) >+do-pre-build: >+.endif >+.if !target(do-post-build) >+do-post-build: >+.endif >+ >+# TODO npm-clean ? >+npm-prune: >+ @${ECHO} "===> Pruning for ${PKGNAME}" >+ @cd ${WRKSRC}/${_NODE_DO_CD} && \ >+ ${_NODE_PACKAGE_EXISTS} && ${NPM_ENV_BUILD} ${NPM_CMD} prune ${NPM_PRUNE_ARGS} && \ >+ for sp in ${NODE_SUB_PROJECTS}; do \ >+ (cd $${sp} && ${NPM_ENV_BUILD} ${NPM_CMD} prune ${NPM_PRUNE_ARGS}) || ${_NODE_DO_FAIL}; \ >+ done >+ >+node-clean-files: >+ @${ECHO} "===> Cleaning files for ${PKGNAME}" >+ @cd ${WRKSRC}/${_NODE_DO_CD} && \ >+ for f in ${NODE_FILES_TO_CLEAN}; do \ >+ ${FIND} -d . -name "$${f}" -and -exec ${RM} -rf {} \;; \ >+ done && \ >+ ${FIND} -d . -type d -empty -exec rmdir {} \; >+ >+do-build: do-pre-build npm-build opt-grunt-build do-post-build npm-prune node-clean-files >+ >+_USES_build+= 751:delete-gyp-pyc >+delete-gyp-pyc: >+ @${ECHO} "===> Deleting created .pyc files that npm should have installed" >+ @${RM} -rf `${FIND} ${LOCALBASE}/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp -name "*.pyc"` >+ >+do-install: >+ @${ECHO} "===> Staging for ${PKGNAME}" >+ @${MKDIR} ${STAGEDIR}${NODE_INSTALL_BASE} >+ @${CP} -r ${WRKSRC} ${STAGEDIR}${NODE_INSTALL_DIR} >+ @${RM} `${FIND} ${STAGEDIR}${NODE_INSTALL_DIR} -name "*.orig"` >+ @${RM} `${FIND} ${STAGEDIR}${NODE_INSTALL_DIR} -name npm-shrinkwrap.json` >+ @${RM} -rf `${FIND} ${STAGEDIR}${NODE_INSTALL_DIR} -name .deps` >+ @${FIND} ${STAGEDIR}${NODE_INSTALL_DIR} -name "*.o" -and -exec ${STRIP_CMD} {} \; >+ @${FIND} ${STAGEDIR}${NODE_INSTALL_DIR} -name "*.node" -and -exec ${STRIP_CMD} {} \; >+ >+.endif
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 204577
:
163164
|
163166
|
163232
|
163675
|
163883
|
164037
|
164105
|
164721
|
164745