Re: poudriere: "Permission denied" in the extract phase?
On Thu, 1 Mar 2018, Yuri wrote: > On 02/26/18 17:11, Marcin Cieslak wrote: > > So I don't know what has changed and why but the temporary fix is to > > use "if" to check if the desired files are not already there, and > > then proceeding with "post-fetch" only if the files are not found. > > > Some time back I was working on nodejs support: > https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=204577 > > So far, I couldn't make it stable because after a week or two files fetched > from the npm server change without an apparent reason. > > I will return to it to see if the situation improved. Hi Yuri, thanks for the pointer - it is very useful! Also I find a very useful reference to Olivier Duchateau's work as well. I share your pain. I am maintaining this local port for 2 years and it is a pain. I must admit the pain comes not only from npm volatility (I somehow managed to handle that) but mostly from the fact that I still needed to maintain node 0.10, node 0.12 and io.js support while they were gone. It is also interesting how the two different approaches - your approach to help build larger applications ports simply (that could help, for example, the current net-im/mastodon port by jrm@) or more comprehensive apporach from Oliver - ruby-style, one port per registry package. The latter approach is more correct but will be problematic in case of when package A requires package B~1.0 and package C requires package B~2.0. So we will need some why to have "local" modules installed under application specific node_modules (/usr/local/lib/node_modules/package_c/node_modules/package_b_2.0). Good news is that for binary modules (where I am mostly interested) we will need to simply disallow this - not because we believe we are the best in the world, but because trying dlopen() second binary module with the same name into node will not work as expected. I also would like to have possibility to build for multiple node engines (node4-, node6-, node8- and node9-) which is a must for binary packages. I would even use NODE_MODULES_VERSION API number instead of 4, 6, 8, 9. So, for binary modules we have to have Oliver's approach, for the rest, it will be hard. I'll try to examine your patches and come up with something reasonable. Marcin smime.p7s Description: S/MIME Cryptographic Signature
Re: poudriere: "Permission denied" in the extract phase?
On 02/26/18 17:11, Marcin Cieslak wrote: So I don't know what has changed and why but the temporary fix is to use "if" to check if the desired files are not already there, and then proceeding with "post-fetch" only if the files are not found. Some time back I was working on nodejs support: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=204577 So far, I couldn't make it stable because after a week or two files fetched from the npm server change without an apparent reason. I will return to it to see if the situation improved. Yuri ___ freebsd-ports@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"
Re: poudriere: "Permission denied" in the extract phase? [solved]
On Sun, 25 Feb 2018, Marcin Cieslak wrote: > Hello, > > why is poudriere on 11.1-STABLE trying to build by custom port which has the > following > in the Makefile: > > post-fetch: > ${MKDIR} ${DISTDIR}/${PORTNAME} > ${MKDIR} ${NPM_CACHE} > ${CP} ${FILESDIR}/package-lock.json ${DISTDIR}/${PORTNAME} > ${CP} ${FILESDIR}/package.json ${DISTDIR}/${PORTNAME} > (cd ${DISTDIR}/${PORTNAME} && ${SETENV} NPM_CONFIG_CACHE=${NPM_CACHE} > npm install --ignore-scripts) > > ( complete port: > https://github.com/saper/ports-exp/tree/master/textproc/node-sass ) > > The results are those: > > ===> Returning to build of node-sass-4.7.2 > === > === > ===> License MIT accepted by the user > ===> Fetching all distfiles required by node-sass-4.7.2 for building > /bin/mkdir -p /portdistfiles/node-sass > /bin/mkdir -p /portdistfiles/npm > /bin/cp /usr/ports/textproc/node-sass/files/package-lock.json > /portdistfiles/node-sass > (cd /portdistfiles/node-sass && /usr/bin/env > NPM_CONFIG_CACHE=/portdistfiles/npm npm install --ignore-scripts) > npm WARN saveError ENOENT: no such file or directory, open > '/portdistfiles/node-sass/package.json' > npm WARN enoent ENOENT: no such file or directory, open > '/portdistfiles/node-sass/package.json' > npm WARN node-sass No description > npm WARN node-sass No repository field. > npm WARN node-sass No README data > npm WARN node-sass No license field. > > added 4 packages in 1.185s > === > === > ===> License MIT accepted by the user > ===> Fetching all distfiles required by node-sass-4.7.2 for building > /bin/mkdir -p /portdistfiles/node-sass > /bin/mkdir -p /portdistfiles/npm > /bin/cp /usr/ports/textproc/node-sass/files/package-lock.json > /portdistfiles/node-sass > (cd /portdistfiles/node-sass && /usr/bin/env > NPM_CONFIG_CACHE=/portdistfiles/npm npm install --ignore-scripts) > npm WARN saveError ENOENT: no such file or directory, open > '/portdistfiles/node-sass/package.json' > npm WARN enoent ENOENT: no such file or directory, open > '/portdistfiles/node-sass/package.json' > npm WARN node-sass No description > npm WARN node-sass No repository field. > npm WARN node-sass No README data > npm WARN node-sass No license field. > > up to date in 0.514s > => SHA256 Checksum OK for sass-node-sass-v4.7.2_GH0.tar.gz. > === > === > === > === > ===> License MIT accepted by the user > ===> Fetching all distfiles required by node-sass-4.7.2 for building > /bin/mkdir -p /portdistfiles/node-sass > /bin/mkdir -p /portdistfiles/npm > /bin/cp /usr/ports/textproc/node-sass/files/package-lock.json > /portdistfiles/node-sass > cp: /portdistfiles/node-sass/package-lock.json: Permission denied > *** Error code 1 > > Stop. > make: stopped in /usr/ports/textproc/node-sass > For the archives: I have solved it (and some other related problem that occured later) by copying even more files to $WRKDIR like crazy: DIST_NPM_CACHE= ${DISTDIR}/npm BUILD_NPM_CACHE=${WRKDIR}/npm .include .if ${COMPILER_TYPE} == clang MAKE_ENV+= GYP_DEFINES=clang=1 .endif fetch-specials: ${MKDIR} ${DISTDIR}/${PORTNAME} ${MKDIR} ${DIST_NPM_CACHE} if [ ! -f ${DISTDIR}/${PORTNAME}/package-lock.json ]; then ${CP} ${FILESDIR}/package-lock.json ${DISTDIR}/${PORTNAME}; \ ${CP} ${FILESDIR}/package.json ${DISTDIR}/${PORTNAME}; \ (cd ${DISTDIR}/${PORTNAME} && ${SETENV} NPM_CONFIG_CACHE=${DIST_NPM_CACHE} npm install --ignore-scripts) \ fi post-extract: (cd ${DISTDIR}/${PORTNAME} && find node_modules | ${PAX} -rw ${WRKSRC}) ${MKDIR} ${BUILD_NPM_CACHE} (cd ${DIST_NPM_CACHE} && find . | ${PAX} -rw ${BUILD_NPM_CACHE}) do-build: (cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} ${MAKE_ENV} NPM_CONFIG_CACHE=${BUILD_NPM_CACHE} npm install --nodedir=${LOCALBASE}) Those things I simpler with yarn. Maybe we could consider using yarn as a basis for some way to bring binary node packages into ports tree. Marcin smime.p7s Description: S/MIME Cryptographic Signature
Re: poudriere: "Permission denied" in the extract phase?
On Tue, 27 Feb 2018, Marcin Cieslak wrote: > On Sun, 25 Feb 2018, Yuri wrote: > > > On 02/25/18 05:37, Marcin Cieslak wrote: > > > Yes, this is my private port that I am using to produce FreeBSD binaries > > > for node-sass. Getting binary npm modules into our ports tree is another > > > conversation. > > > > > > The problem here is that a whole thing worked for me before for months > > > so I am aware of all those limitations for particular build phases > > > (it took me long to figure out that). > > > > > > npm is an extremely volatile technology. Some package might work now, and > > then > > break in a week due to a dependency package update. > > > > It continuously automatically updates files that are downloaded as > > dependencies. > > > > NodeJS is largely incompatible with the FreeBSD ports system because of this > > volatility. > > > > NodeJS is also a very insecure technology. It brings files directly from > > github without any vetting. So if somebody will update some github package > > with malware, it is extremely likely that next day this malware will end up > > on > > your production servers. There is nobody in between, you have to always > > trust > > hundreds of parties. > > I think I have some idea how we can tame this somewhat without allowing for > a wild fetch. > > It seems that I need to learn more about the code that checks the completness > of the distfiles, since "make checksum" insists on redoing things all again: > > # rm -rf distinfo > # make makesum > (...) So I don't know what has changed and why but the temporary fix is to use "if" to check if the desired files are not already there, and then proceeding with "post-fetch" only if the files are not found. Marcin smime.p7s Description: S/MIME Cryptographic Signature
Re: poudriere: "Permission denied" in the extract phase?
On Sun, 25 Feb 2018, Yuri wrote: > On 02/25/18 05:37, Marcin Cieslak wrote: > > Yes, this is my private port that I am using to produce FreeBSD binaries > > for node-sass. Getting binary npm modules into our ports tree is another > > conversation. > > > > The problem here is that a whole thing worked for me before for months > > so I am aware of all those limitations for particular build phases > > (it took me long to figure out that). > > > npm is an extremely volatile technology. Some package might work now, and then > break in a week due to a dependency package update. > > It continuously automatically updates files that are downloaded as > dependencies. > > NodeJS is largely incompatible with the FreeBSD ports system because of this > volatility. > > NodeJS is also a very insecure technology. It brings files directly from > github without any vetting. So if somebody will update some github package > with malware, it is extremely likely that next day this malware will end up on > your production servers. There is nobody in between, you have to always trust > hundreds of parties. I think I have some idea how we can tame this somewhat without allowing for a wild fetch. It seems that I need to learn more about the code that checks the completness of the distfiles, since "make checksum" insists on redoing things all again: # rm -rf distinfo # make makesum # cat distinfo TIMESTAMP = 1519691985 SHA256 (sass-node-sass-v4.7.2_GH0.tar.gz) = 21cdea5c6bf73825eaec06e78a0bcc54ed75c0953e05c72fe4b4316d756b9e35 SIZE (sass-node-sass-v4.7.2_GH0.tar.gz) = 398635 # env TERM=dumb make checksum ===> License MIT accepted by the user ===> node-sass-4.7.2 depends on file: /usr/local/sbin/pkg - found ===> node-sass-4.7.2 depends on package: npm>=0 - found ===> Fetching all distfiles required by node-sass-4.7.2 for building /bin/mkdir -p /usr/ports/distfiles/node-sass /bin/mkdir -p /usr/ports/distfiles/npm cp -f /home/saper/sw/FreeBSD/ports/textproc/node-sass/files/package-lock.json /usr/ports/distfiles/node-sass cp -f /home/saper/sw/FreeBSD/ports/textproc/node-sass/files/package.json /usr/ports/distfiles/node-sass (cd /usr/ports/distfiles/node-sass && /usr/bin/env NPM_CONFIG_CACHE=/usr/ports/distfiles/npm npm install --ignore-scripts) npm WARN lifecycle node-sass@4.7.2~install: cannot run in wd %s %s (wd=%s) node-sass@4.7.2 node scripts/install.js /usr/ports/distfiles/node-sass npm WARN lifecycle node-sass@4.7.2~postinstall: cannot run in wd %s %s (wd=%s) node-sass@4.7.2 node scripts/build.js /usr/ports/distfiles/node-sass npm WARN prepublish-on-install As of npm@5, `prepublish` scripts are deprecated. npm WARN prepublish-on-install Use `prepare` for build steps and `prepublishOnly` for upload-only. npm WARN prepublish-on-install See the deprecation note in `npm help scripts` for more information. npm WARN lifecycle node-sass@4.7.2~prepublish: cannot run in wd %s %s (wd=%s) node-sass@4.7.2 not-in-install && node scripts/prepublish.js || in-install /usr/ports/distfiles/node-sass up to date in 1.952s => SHA256 Checksum OK for sass-node-sass-v4.7.2_GH0.tar.gz. # env TERM=dumb make checksum ===> License MIT accepted by the user ===> node-sass-4.7.2 depends on file: /usr/local/sbin/pkg - found ===> node-sass-4.7.2 depends on package: npm>=0 - found ===> Fetching all distfiles required by node-sass-4.7.2 for building /bin/mkdir -p /usr/ports/distfiles/node-sass /bin/mkdir -p /usr/ports/distfiles/npm cp -f /home/saper/sw/FreeBSD/ports/textproc/node-sass/files/package-lock.json /usr/ports/distfiles/node-sass cp -f /home/saper/sw/FreeBSD/ports/textproc/node-sass/files/package.json /usr/ports/distfiles/node-sass (cd /usr/ports/distfiles/node-sass && /usr/bin/env NPM_CONFIG_CACHE=/usr/ports/distfiles/npm npm install --ignore-scripts) npm WARN lifecycle node-sass@4.7.2~install: cannot run in wd %s %s (wd=%s) node-sass@4.7.2 node scripts/install.js /usr/ports/distfiles/node-sass npm WARN lifecycle node-sass@4.7.2~postinstall: cannot run in wd %s %s (wd=%s) node-sass@4.7.2 node scripts/build.js /usr/ports/distfiles/node-sass npm WARN prepublish-on-install As of npm@5, `prepublish` scripts are deprecated. npm WARN prepublish-on-install Use `prepare` for build steps and `prepublishOnly` for upload-only. npm WARN prepublish-on-install See the deprecation note in `npm help scripts` for more information. npm WARN lifecycle node-sass@4.7.2~prepublish: cannot run in wd %s %s (wd=%s) node-sass@4.7.2 not-in-install && node scripts/prepublish.js || in-install /usr/ports/distfiles/node-sass up to date in 1.921s => SHA256 Checksum OK for sass-node-sass-v4.7.2_GH0.tar.gz. So this is not poudriere's fault. Marcin smime.p7s Description: S/MIME Cryptographic Signature
Re: poudriere: "Permission denied" in the extract phase?
On 02/25/18 05:37, Marcin Cieslak wrote: Yes, this is my private port that I am using to produce FreeBSD binaries for node-sass. Getting binary npm modules into our ports tree is another conversation. The problem here is that a whole thing worked for me before for months so I am aware of all those limitations for particular build phases (it took me long to figure out that). npm is an extremely volatile technology. Some package might work now, and then break in a week due to a dependency package update. It continuously automatically updates files that are downloaded as dependencies. NodeJS is largely incompatible with the FreeBSD ports system because of this volatility. NodeJS is also a very insecure technology. It brings files directly from github without any vetting. So if somebody will update some github package with malware, it is extremely likely that next day this malware will end up on your production servers. There is nobody in between, you have to always trust hundreds of parties. Yuri ___ freebsd-ports@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"
Re: poudriere: "Permission denied" in the extract phase?
On Sun, 25 Feb 2018, Adam Weinberger wrote: > > > (full log: > > > https://gist.github.com/saper/0be3f9b4e9eb819d3ec00f5273705517#file-node-sass-4-7-2-log > > > ) > > > > > > Why are /bin/mkdir -p and /bin/cp commands invoked again in the "extract" > > > phase? > > > > > > FreeBSD 11.1-STABLE #10 r321629 running poudriere-3.2.4 (I have updated > > > poudriere today) > > First of all, just so you know, npm module ports won't be added to the ports > tree. I just wanted to be clear in case you were planning on submitting it. > There were a couple threads about this a while back. > > With that out of the way, you're hitting errors for two reasons here. Yes, this is my private port that I am using to produce FreeBSD binaries for node-sass. Getting binary npm modules into our ports tree is another conversation. The problem here is that a whole thing worked for me before for months so I am aware of all those limitations for particular build phases (it took me long to figure out that). > The first problem is that npm needs network access, and poudriere prevents > ports from dialing out. You can work around this with the > ALLOW_NETWORKING_PACKAGES variable in poudriere.conf. > > The other problem you're hitting is that npm saves a cache, and for some > reason you're trying to run it from /usr/ports/distfiles/node-sass. Ports > themselves should never, ever have the ability to create files in > /usr/ports/distfiles. If you run 'npm install' from ${WRKSRC}, then you can > do: > cd ${WRKSRC} && ${SETENV} HOME=/tmp npm install Aren't ports allowed to write in /usr/ports/distfiles during the fetch phase? That would be new to me... This whole thing was working for me before (with older poudriere/bsd.port.mk maybe). I try to force npm to fetch everything (including dependent modules) in the fetch phase: 42 post-fetch: 43 ${MKDIR} ${DISTDIR}/${PORTNAME} 44 ${MKDIR} ${NPM_CACHE} 45 ${CP} ${FILESDIR}/package-lock.json ${DISTDIR}/${PORTNAME} 46 ${CP} ${FILESDIR}/package.json ${DISTDIR}/${PORTNAME} 47 (cd ${DISTDIR}/${PORTNAME} && ${SETENV} NPM_CONFIG_CACHE=${NPM_CACHE} npm install --ignore-scripts) I copy everything I need from distfiles to ${WRKSRC} in the extract phase: 49 post-extract: 50 (cd ${DISTDIR}/${PORTNAME} && ${FIND} node_modules | ${PAX} -rw ${WRKSRC}) 51 I build everything without touching the network: 52 do-build: 53 (cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} ${MAKE_ENV} NPM_CONFIG_CACHE=${NPM_CACHE} npm install --nodedir=${LOCALBASE}) The problem in particular is that "post-fetch" target is invoked ALSO during the "extract" target, I don't know why: === ===> License MIT accepted by the user ===> Fetching all distfiles required by node-sass-4.7.2 for building /bin/mkdir -p /portdistfiles/node-sass /bin/mkdir -p /portdistfiles/npm It did that already in the fetch phase: === === ===> License MIT accepted by the user ===> Fetching all distfiles required by node-sass-4.7.2 for building /bin/mkdir -p /portdistfiles/node-sass /bin/mkdir -p /portdistfiles/npm and it tries that again in the checksum phase: === === ===> License MIT accepted by the user ===> Fetching all distfiles required by node-sass-4.7.2 for building /bin/mkdir -p /portdistfiles/node-sass /bin/mkdir -p /portdistfiles/npm Maybe there is an additional check for a successful fetch that I have missed. Marcin smime.p7s Description: S/MIME Cryptographic Signature
Re: poudriere: "Permission denied" in the extract phase?
On 24 Feb, 2018, at 19:53, Marcin Cieslak wrote: On Sun, 25 Feb 2018, Marcin Cieslak wrote: Hello, why is poudriere on 11.1-STABLE trying to build by custom port which has the following in the Makefile: post-fetch: ${MKDIR} ${DISTDIR}/${PORTNAME} ${MKDIR} ${NPM_CACHE} ${CP} ${FILESDIR}/package-lock.json ${DISTDIR}/${PORTNAME} ${CP} ${FILESDIR}/package.json ${DISTDIR}/${PORTNAME} (cd ${DISTDIR}/${PORTNAME} && ${SETENV} NPM_CONFIG_CACHE=${NPM_CACHE} npm install --ignore-scripts) ( complete port: https://github.com/saper/ports-exp/tree/master/textproc/node-sass ) The results are those: ( this was wrong, the full log is also corrected ) ===> Returning to build of node-sass-4.7.2 === === ===> License MIT accepted by the user ===> Fetching all distfiles required by node-sass-4.7.2 for building /bin/mkdir -p /portdistfiles/node-sass /bin/mkdir -p /portdistfiles/npm /bin/cp /usr/ports/textproc/node-sass/files/package-lock.json /portdistfiles/node-sass /bin/cp /usr/ports/textproc/node-sass/files/package.json /portdistfiles/node-sass (cd /portdistfiles/node-sass && /usr/bin/env NPM_CONFIG_CACHE=/portdistfiles/npm npm install --ignore-scripts) npm WARN lifecycle node-sass@4.7.2~install: cannot run in wd %s %s (wd=%s) node-sass@4.7.2 node scripts/install.js /portdistfiles/node-sass npm WARN lifecycle node-sass@4.7.2~postinstall: cannot run in wd %s %s (wd=%s) node-sass@4.7.2 node scripts/build.js /portdistfiles/node-sass npm WARN prepublish-on-install As of npm@5, `prepublish` scripts are deprecated. npm WARN prepublish-on-install Use `prepare` for build steps and `prepublishOnly` for upload-only. npm WARN prepublish-on-install See the deprecation note in `npm help scripts` for more information. npm WARN lifecycle node-sass@4.7.2~prepublish: cannot run in wd %s %s (wd=%s) node-sass@4.7.2 not-in-install && node scripts/prepublish.js || in-install /portdistfiles/node-sass added 356 packages in 10.684s === === ===> License MIT accepted by the user ===> Fetching all distfiles required by node-sass-4.7.2 for building /bin/mkdir -p /portdistfiles/node-sass /bin/mkdir -p /portdistfiles/npm /bin/cp /usr/ports/textproc/node-sass/files/package-lock.json /portdistfiles/node-sass /bin/cp /usr/ports/textproc/node-sass/files/package.json /portdistfiles/node-sass (cd /portdistfiles/node-sass && /usr/bin/env NPM_CONFIG_CACHE=/portdistfiles/npm npm install --ignore-scripts) npm WARN lifecycle node-sass@4.7.2~install: cannot run in wd %s %s (wd=%s) node-sass@4.7.2 node scripts/install.js /portdistfiles/node-sass npm WARN lifecycle node-sass@4.7.2~postinstall: cannot run in wd %s %s (wd=%s) node-sass@4.7.2 node scripts/build.js /portdistfiles/node-sass npm WARN prepublish-on-install As of npm@5, `prepublish` scripts are deprecated. npm WARN prepublish-on-install Use `prepare` for build steps and `prepublishOnly` for upload-only. npm WARN prepublish-on-install See the deprecation note in `npm help scripts` for more information. npm WARN lifecycle node-sass@4.7.2~prepublish: cannot run in wd %s %s (wd=%s) node-sass@4.7.2 not-in-install && node scripts/prepublish.js || in-install /portdistfiles/node-sass npm WARN ajv-keywords@1.5.1 requires a peer of ajv@>=4.10.0 but none is installed. You must install peer dependencies yourself. up to date in 2.13s => SHA256 Checksum OK for sass-node-sass-v4.7.2_GH0.tar.gz. === === === === ===> License MIT accepted by the user ===> Fetching all distfiles required by node-sass-4.7.2 for building /bin/mkdir -p /portdistfiles/node-sass /bin/mkdir -p /portdistfiles/npm /bin/cp /usr/ports/textproc/node-sass/files/package-lock.json /portdistfiles/node-sass cp: /portdistfiles/node-sass/package-lock.json: Permission denied *** Error code 1 Stop. make: stopped in /usr/ports/textproc/node-sass =>> Cleaning up wrkdir ===> Cleaning for node-sass-4.7.2 build of textproc/node-sass | node-sass-4.7.2 ended at Sun Feb 25 02:33:55 UTC 2018 (full log: https://gist.github.com/saper/0be3f9b4e9eb819d3ec00f5273705517#file-node-sass-4-7-2-log ) Why are /bin/mkdir -p and /bin/cp commands invoked again in the "extract" phase? FreeBSD 11.1-STABLE #10 r321629 running poudriere-3.2.4 (I have updated poudriere today) What's wrong? That part of port code didn't change for some time. Marcin First of all, just so you know, npm module ports won't be added to the ports tree. I just wanted to be clear in case you were planning on sub
Re: poudriere: "Permission denied" in the extract phase?
On Sun, 25 Feb 2018, Marcin Cieslak wrote: > Hello, > > why is poudriere on 11.1-STABLE trying to build by custom port which has the > following > in the Makefile: > > post-fetch: > ${MKDIR} ${DISTDIR}/${PORTNAME} > ${MKDIR} ${NPM_CACHE} > ${CP} ${FILESDIR}/package-lock.json ${DISTDIR}/${PORTNAME} > ${CP} ${FILESDIR}/package.json ${DISTDIR}/${PORTNAME} > (cd ${DISTDIR}/${PORTNAME} && ${SETENV} NPM_CONFIG_CACHE=${NPM_CACHE} > npm install --ignore-scripts) > > ( complete port: > https://github.com/saper/ports-exp/tree/master/textproc/node-sass ) > > The results are those: > ( this was wrong, the full log is also corrected ) ===> Returning to build of node-sass-4.7.2 === === ===> License MIT accepted by the user ===> Fetching all distfiles required by node-sass-4.7.2 for building /bin/mkdir -p /portdistfiles/node-sass /bin/mkdir -p /portdistfiles/npm /bin/cp /usr/ports/textproc/node-sass/files/package-lock.json /portdistfiles/node-sass /bin/cp /usr/ports/textproc/node-sass/files/package.json /portdistfiles/node-sass (cd /portdistfiles/node-sass && /usr/bin/env NPM_CONFIG_CACHE=/portdistfiles/npm npm install --ignore-scripts) npm WARN lifecycle node-sass@4.7.2~install: cannot run in wd %s %s (wd=%s) node-sass@4.7.2 node scripts/install.js /portdistfiles/node-sass npm WARN lifecycle node-sass@4.7.2~postinstall: cannot run in wd %s %s (wd=%s) node-sass@4.7.2 node scripts/build.js /portdistfiles/node-sass npm WARN prepublish-on-install As of npm@5, `prepublish` scripts are deprecated. npm WARN prepublish-on-install Use `prepare` for build steps and `prepublishOnly` for upload-only. npm WARN prepublish-on-install See the deprecation note in `npm help scripts` for more information. npm WARN lifecycle node-sass@4.7.2~prepublish: cannot run in wd %s %s (wd=%s) node-sass@4.7.2 not-in-install && node scripts/prepublish.js || in-install /portdistfiles/node-sass added 356 packages in 10.684s === === ===> License MIT accepted by the user ===> Fetching all distfiles required by node-sass-4.7.2 for building /bin/mkdir -p /portdistfiles/node-sass /bin/mkdir -p /portdistfiles/npm /bin/cp /usr/ports/textproc/node-sass/files/package-lock.json /portdistfiles/node-sass /bin/cp /usr/ports/textproc/node-sass/files/package.json /portdistfiles/node-sass (cd /portdistfiles/node-sass && /usr/bin/env NPM_CONFIG_CACHE=/portdistfiles/npm npm install --ignore-scripts) npm WARN lifecycle node-sass@4.7.2~install: cannot run in wd %s %s (wd=%s) node-sass@4.7.2 node scripts/install.js /portdistfiles/node-sass npm WARN lifecycle node-sass@4.7.2~postinstall: cannot run in wd %s %s (wd=%s) node-sass@4.7.2 node scripts/build.js /portdistfiles/node-sass npm WARN prepublish-on-install As of npm@5, `prepublish` scripts are deprecated. npm WARN prepublish-on-install Use `prepare` for build steps and `prepublishOnly` for upload-only. npm WARN prepublish-on-install See the deprecation note in `npm help scripts` for more information. npm WARN lifecycle node-sass@4.7.2~prepublish: cannot run in wd %s %s (wd=%s) node-sass@4.7.2 not-in-install && node scripts/prepublish.js || in-install /portdistfiles/node-sass npm WARN ajv-keywords@1.5.1 requires a peer of ajv@>=4.10.0 but none is installed. You must install peer dependencies yourself. up to date in 2.13s => SHA256 Checksum OK for sass-node-sass-v4.7.2_GH0.tar.gz. === === === === ===> License MIT accepted by the user ===> Fetching all distfiles required by node-sass-4.7.2 for building /bin/mkdir -p /portdistfiles/node-sass /bin/mkdir -p /portdistfiles/npm /bin/cp /usr/ports/textproc/node-sass/files/package-lock.json /portdistfiles/node-sass cp: /portdistfiles/node-sass/package-lock.json: Permission denied *** Error code 1 Stop. make: stopped in /usr/ports/textproc/node-sass =>> Cleaning up wrkdir ===> Cleaning for node-sass-4.7.2 build of textproc/node-sass | node-sass-4.7.2 ended at Sun Feb 25 02:33:55 UTC 2018 > (full log: > https://gist.github.com/saper/0be3f9b4e9eb819d3ec00f5273705517#file-node-sass-4-7-2-log > ) > > Why are /bin/mkdir -p and /bin/cp commands invoked again in the "extract" > phase? > > FreeBSD 11.1-STABLE #10 r321629 running poudriere-3.2.4 (I have updated > poudriere today) > > What's wrong? That part of port code didn't change for some time. > > Marcin smime.p7s Description: S/MIME Cryptographic Signature